Selasa, 22 Juni 2010
di
21.23
|
Ketika membuat program seringkali kita membuat no urut yang dibuat dari bawaan database, seperti kode yang bertipe integer dan yang bersifat increment. Cara tersebut memberikan keuntungan yaitu mudah dan cepat, namun saya seringkali mendapat masalah saat menghapus record/data paling terakhir, yaitu no urut akan terus bertambah seiring banyak data yang pernah ada. Misal seperti ini, ada 10 data mulai no urut 1-10. Bila data ke-9 dan ke-10 saya hapus, berarti tinggal 8 data kan, kemudian saya menambahkan 1 data ke database, timbulah permasalah yaitu no urut yang dihasilkan bukanlah no-9 melainkan no 11. Itu terjadi karena database masih menyimpan no urut yang pernah di hapus. Untuk mengatasi hal ini akhirnya saya menggunakan code seperti ini, walaupun masih memiliki kelemahan, tetapi untuk kasus seperti yang saya ceritakan bisa diatasi. Berikut source code nya :
var kd,st,newKd:string;
i,n:integer;
....
ADOTable1.Last;
if not(ADOTable1.eof and ADOTable1.Bof) then
begin
kd:=ADOTable1.FieldByName('kode').AsString;
// auto generate
for i:=1 to 2 do
st:=st+kd[i+1];
n:=strtoint(st)+1;
case length(inttostr(n)) of
1 : newKd:='K0'+inttostr(n);
2 : newKd:='K'+inttostr(n);
end;
end
else newKd:='K01';
Edit1.Text:=newKd;
nb: Untuk field kode bertipe varchar/text dengan length 3.
Hasil akhir akan menghasilkan kode yang berurut yang mulai diawali dengan huruf :
K01
K02
K03
…
K99
Silahkan dimodifikasi dan selamat mencoba…
var kd,st,newKd:string;
i,n:integer;
....
ADOTable1.Last;
if not(ADOTable1.eof and ADOTable1.Bof) then
begin
kd:=ADOTable1.FieldByName('kode').AsString;
// auto generate
for i:=1 to 2 do
st:=st+kd[i+1];
n:=strtoint(st)+1;
case length(inttostr(n)) of
1 : newKd:='K0'+inttostr(n);
2 : newKd:='K'+inttostr(n);
end;
end
else newKd:='K01';
Edit1.Text:=newKd;
nb: Untuk field kode bertipe varchar/text dengan length 3.
Hasil akhir akan menghasilkan kode yang berurut yang mulai diawali dengan huruf :
K01
K02
K03
…
K99
Silahkan dimodifikasi dan selamat mencoba…
Diposting oleh
Borland7
0 komentar:
Posting Komentar