en son eklediğin kayıta ait ID numarasını şu şekilde alabilirsin.
trigger aşağıdaki gibi
Kod: Tümünü seç
CREATE TRIGGER GIREN_BI FOR GIREN
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF ((NEW.ID IS NULL) or (NEW.ID = 0)) THEN
NEW.ID = GEN_ID(GEN_GIREN_ID,1);
END
ibdataset1 --> sağ tuş --> dataset editör --> key field alanında sadece ID alanını seç --> update field alanında da ID haric diğer alanları seç -->generate sql --> Insert Sql bölümüne gel -->
Kod: Tümünü seç
insert into GIREN
(CINS, TOPLAM, TUR)
values
(:CINS, :TOPLAM, :TUR)
olarak yazılmış olan kodu
Kod: Tümünü seç
insert into GIREN
(ID,CINS, TOPLAM, TUR)
values
(GEN_ID(GEN_GIREN_ID,0),:CINS, :TOPLAM, :TUR)
olarak değiştir.
ibdataset bileşenin GeneratorField ozelligine tıkla
Generator = GEN_GIREN_ID
Field = ID
Increment By = 1
Apply event = On post
yap.
bu sayede
Kod: Tümünü seç
ibdataset1.insert;
//ibdatasetID.Asinteger := 0; gibi bir kod sakın yazma :)
.....
.....
.....
ibdataset1.post;
dersen kayıdın normal ID değerine ulaşabilirsin.
bu işin güzel tarafı tabloyu close/open etmeden en son eklediğin kayıt üzerinde silme ve düzenleme işlemlerini sorunsuz bir şekilde yapabiliyorsun.
bu yöntemde trigger hiç bir iş yapmıyor ben olesine kullanıyorum.