Her evrak kaydı için yeni kayıt numarasını bir table da tutup buradan bir arttırarak almak istiyorum. Bunu sağlıklı bir şekilde yapabilmek içinde Aşağıdaki transaction kodunu kitaptan aldım ve uyguladım....
(db database name' mim; db. dan sonra database in diğer seçeneklerini getiriyor burada problem yok yani)
Kod: Tümünü seç
try
if not(db.IsSQLBased) then
db.TransIsolation := tiDirtyRead; // database yerel veritabanını tiDirtyRead moduna ayarla
db.startTransaction; // Transaction işlemini başlat
tbl_num.SetKey;
tbl_num.FieldByName('mudurluk_no').Asinteger := pbl_mudurluk_no;
tbl_num.FieldByName('yil').Asinteger := my_year;
tbl_num.FieldByName('evrak_seri').Asstring := 'A';
if not tbl_num.GotoKey then
begin
application.MessageBox('Müdürlük numarası bulunamadı','kayıt yok',48+0);
end;
tbl_num.edit;
numara := tbl_num.FieldByName('son_numara').Asinteger;
inc(numara); // := numara + 1;
edt_kno.Text := inttostr(numara);
tbl_num.FieldByName('son_numara').Asinteger := numara;
tbl_num.FieldByName('kullanma_tarihi').Asinteger := my_date;
tbl_gelen.FieldByName('kayit_no').Asinteger := numara; // strtoint(edt_kno.Text);
tbl_num.applyrange;
tbl_gelen.applyrange;
str_99 := 'Gelen Evrak '+ inttostr(numara) +' NO ile GİRİŞ yapıldı...';
showmessage(str_99);
// printer_yaz(); // printer dan kaşe bastırma
db.Commit; // table a yazdırma
except
db.rollback;
showmessage('Hata oluştuğu için kayıt alınmadı..');
end; // try except
Çok Teşekkürler