husonet | Tarih: 28.12.2017
Delphi - ADOQuery insert işleminde son Id nasıl getirilir?
Delphi-AdoQuery insert işleminden sonra ID bilgisi nasıl elde edilir?
Merhabalar Arkadaşlar, (Not:Lütfen öneri ve sorularınızı yorum olarak atınız. Teşekkürler şimdiden)
Bu makalemde Delphi programlama dilinde mssql veritabanı ile uygulama yazıyorsak, veritabanı işlem yapacağımız tablo'nın primary key'i autoincrement ise işlem sonrası ID numarasını nasıl elde ederiz konusundan bahsedeceğim.
[b]Veritabanı yapısını çıkarırken tablo ID tasarımı konusunda iki seçeneğiniz bulunmaktadır.[/b]
Bunlardan birincisi tablolarının ID'sini auto increment özelliğini kapatarak bunu sequences gibi bir tabloda tutarak yapılacak işlemden önce o tablodan son ID rakamını çekebiliriz.Ama aynı tabloda aynı anda iki işlem yapılırsa bu işlem hataya açıktır.
İkinci seçeneğimiz olan daha sağlıklı yöntem olan auto increment özelliğini kullanmaktır. Bu seçeneği kullanıyorsa Master ve detay iki tabloda insert işlemi yapacaksak ve Master tablo'nun ID'sini detay tabloya insert edeceksek;
Master tabloya insert işleminden sonra son ID bilgisi nasıl elde edilir? Bunun örnek fonksiyonunu aşağıda paylaşacağım.
Direk olarak function tanımı yaparak kullanabilirsiniz.
function SonIdGetir(var quEntry: TADOQuery {or TQuery}): Integer;
begin
result := -1;
try
quEntry.SQL.clear;
quEntry.SQL.Add('SELECT @@IDENTITY');
quEntry.Active := True;
quEntry.First;
result := quEntry.Fields.Fields[0].AsInteger;
finally
quEntry.Active := False;
quEntry.SQL.clear;
end;
end;
İyi çalışmalar.