16-12-2017, Saat: 11:15
(12-12-2017, Saat: 18:54)adelphiforumz Adlı Kullanıcıdan Alıntı:create Function [dbo].[fnx_Get_MaxID] () Returns int As Begin Declare @SonNo int Select @SonNo = Max(ID) From Satis If @SonNo = 0 Or @SonNo Is Null Set @SonNo = 1 Else Set @SonNo = @SonNo + 1 Return @SonNo End
Merhaba,
Bir UDF'nin içinde SELECT ile tablodan veri çekmek performans açısından çok sakıncalı. Bunun yerine aşağıdaki fonksiyonu doğrudan kullanmak performans açısından darboğaza düşmenize engel olur;
SELECT IDENT_CURRENT ( 'SIRAPIS' ) as ID
Eğer Tablo veritabanında varsa hiç bir zaman NULL değeri üretmez. Dolayısıyla ISNULL gibi uğraşılara girmenize gerek kalmaz. Bunu aşağıdaki şekilde Delphi üzerinde şöyle de kullanabilirsiniz;
Close;
SQL.Clear;
SQL.Add('SELECT IDENT_CURRENT ( ''SIRAPIS'' ) as ID');
//Prepared := True;
Open;
SonId := FieldByName( 'ID' ).AsInteger + 1;
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw

