Arsip: Number Sequence

 
user image
more 14 years ago

die_yarn

hii. all.. pemula mo nanya neh... abisnya browsing sana browsing sini gak ketemu jawabannya... gimana yah caranya membuat field yang berisi sequence number yg auto increase.. kalo auto increase integer dah bisa, tapi kalo yg ada stringnya blum bisa, contohnya spt : "DSK0001" untuk record selanjutnya khan "DSK0002" dst..... increment tiap nambah new record gitu.. thanks b4..
user image
more 14 years ago

send2iwan

buat aja satu field lagi buat yang luar biasa itu... (isinya dari yang biasa + embel2 depan kek/belakang kek dll) hehehehe
user image
more 14 years ago

Budiadi

Kalau aku biasa bikin pake algoritma,.. maksudnya pertama kita tentu-in dulu formatnya sebagai contoh kalau mau disimpan sebagai DSK0001....DSK9999 maka format dari field tsb adalah XXX9999 dimana XXX adalah constant dan 9999 adalah sequence number. waktu programing buat suatu fungsi untuk mendapatkan angka terakhir dari sequence number yang diambil dari SQL/Tabel yang dah disort berdasarkan Field Number tsb, contoh Function getSeqNumber : Integer; Begin With SQLAngka Do Begin Active := False; SQL.Clear; SQL.Add('Select * From TblAngka Order By FldAngka'); ExecSQL; Active := True; Last; Result := StrToInt(Copy(FieldByName('FldAngka').AsString,4,4)); End; End; Lalu buat lagi satu fungsi untuk memberi mask pada angka misal angka 1 menjadi 0001 dst Function MaskNumber(Angka : Integer) : String; Var S : String; I : Integer; Begin S := IntToStr(Angka); I := Length(S); Case I Of 1 : Result := '000'+S; 2 : Result := '00'+S; 3 : Result := '0'+S; 4 : Result := S; End; End; Maka pada saat simpan data tinggal buat panggil fungsi2 tsb di tambah embel2 didepannya, jangan lupa untuk menambahkan 1 pada fungsi getSeqNumber Begin With TblAngka Do begin Append; FieldByName('FldAngka').AsString := 'DSK'+MaskNumber(GetSeqNumber+1); Post; End; End; Demikian kira2,... mudah2an bisa membantu,... ato malah tambah bingung????
user image
more 14 years ago

herux

database pake apa ?? kalo pake firebird : buat aja generator dengan nama = namafieldSeq_gen_id; buat trigger di OnInsert yg isinya: nilaigen = gen_id(namafieldSeq_gen_id,1); if (nilaigen < 10) then / kalo 1 digit / namafieldSeq = 'DSK000' || gen_id(namafieldSeq_gen_id,1); if (nilaigen >= 10) and (nilaigen >= 100) then / kalo 2 digit / namafieldSeq = 'DSK00' || gen_id(namafieldSeq_gen_id,1); dan seterusnya.... teruskan sendiri he he e... itu bisa lebih simple lho ... cobalah gunakan logika sendiri (tapi sederhananya gitu ...xi ixxi xix)
user image
more 14 years ago

die_yarn

@ all makasih2 atas tambahan ilmunya... spesial for bang budiadi -> detail banget penjelasannya.. sekarang tinggal prakteknya... heheh.... @herux
database pake apa ??
karena masih pemula pake paradox aja... bawaannya delphi, yang masih mudah... hehehe kayaknya logika punya bang budiadi bisa dipake disemua tipe database yah??
user image
more 14 years ago

send2iwan

ga bisa tuh, ini untuk multi user atau single?
user image
more 14 years ago

Iansx

mas maaf klo database'a pake mysql bgmn?? apa yang harus saya tambahin...ap script trigger'a sama? terimakasih....
user image
more 14 years ago

send2iwan

untuk semua model database. 1st harus punya table special yg ngurusin masalah counter/generator.
user image
more 14 years ago

herux

punya Budiadi bisa juga,.. tapi warning jika program untuk multi user !! kalo mysql 5 ya ada dunk trigger nya..
user image
more 14 years ago

send2iwan

warning=ga boleh=hehhehehehehe
more ...
Share to

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com