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.
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.
Yorumlar