delphi identity değeri yakalama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
delphi identity değeri yakalama
benim şu şekilde sp üm var .
ALTER PROCEDURE [dbo].[kayitekle] (@ad varchar(25), @soyad varchar(25))
AS
INSERT INTO kayit (ad, soyad) VALUES (@ad,@soyad) select @@identity as yeni
return
ben bu sp yi TSQLStoredProc ile çağırıyorum. ve kodların şöyle
//
x:integer;
sp.ParamByName('@ad').AsString:=edad.text;
sp.ParamByName('@soyad').AsString:=edsoy.text;
sp.ExecProc; // buraya kadar çalışıyor.
x:= sp.FieldByName('yeni').asinteger ;
benim yapmak istediğim geriye dönen identity değerini bir değişkene aktarmak
x integer değişkenine aktaramıyorum. forumlarda cok araştırdım hep sql kısmını bahse almışlar. geriye dönen değeri bir değişkene aktarmam lazım yardım larınızı bekliyorum . 2 gündür gezmediğim forum kalmadı ama hala bulamadım
ALTER PROCEDURE [dbo].[kayitekle] (@ad varchar(25), @soyad varchar(25))
AS
INSERT INTO kayit (ad, soyad) VALUES (@ad,@soyad) select @@identity as yeni
return
ben bu sp yi TSQLStoredProc ile çağırıyorum. ve kodların şöyle
//
x:integer;
sp.ParamByName('@ad').AsString:=edad.text;
sp.ParamByName('@soyad').AsString:=edsoy.text;
sp.ExecProc; // buraya kadar çalışıyor.
x:= sp.FieldByName('yeni').asinteger ;
benim yapmak istediğim geriye dönen identity değerini bir değişkene aktarmak
x integer değişkenine aktaramıyorum. forumlarda cok araştırdım hep sql kısmını bahse almışlar. geriye dönen değeri bir değişkene aktarmam lazım yardım larınızı bekliyorum . 2 gündür gezmediğim forum kalmadı ama hala bulamadım
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: delphi identity değeri yakalama
Merhabalar
aynı soruyu ben 29 Nisanda MS SQL SERVER kısmında "parametre döndürme hatası" başlığı altında sormuştum
orada verilen cevaplar işini görecektir.
yinede halledemezsen yaptığım örnekten bir kod gönderebilirim.
aynı soruyu ben 29 Nisanda MS SQL SERVER kısmında "parametre döndürme hatası" başlığı altında sormuştum
orada verilen cevaplar işini görecektir.
yinede halledemezsen yaptığım örnekten bir kod gönderebilirim.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: delphi identity değeri yakalama
ayrıca işin asıl kısmı delphi tarafında
sp.ExecProc;
yerine
Sp.open
kullanmanda yatıyor bilgin olsun
sp.ExecProc;
yerine
Sp.open
kullanmanda yatıyor bilgin olsun
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: delphi identity değeri yakalama
Merhaba
SP'ye değer döndüren bir parametre ekle. Sp'yi çalıştırdıktan sonra çıkış parametresini oku ve gerekli işler için kullan.
SP'ye değer döndüren bir parametre ekle. Sp'yi çalıştırdıktan sonra çıkış parametresini oku ve gerekli işler için kullan.
Kod: Tümünü seç
ALTER PROCEDURE [dbo].[kayitekle] (@ad varchar(25), @soyad varchar(25),@NEWREC INT OUTPUT)
AS
BEGIN
INSERT INTO kayit (ad, soyad) VALUES (@ad,@soyad)
select @NEWREC=@@identity
return
END
Kod: Tümünü seç
sp.ParamByName('@ad').AsString:=edad.text;
sp.ParamByName('@soyad').AsString:=edsoy.text;
sp.ExecProc; // buraya kadar çalışıyor.
x:= sp.ParamByName('@NEWREC').asinteger ;
Re: delphi identity değeri yakalama
mehabalar. sql kısmını şoyle yaptım
delphi kısmını şöyle yaptım
sorunsuz calışıyor ama bir önceki kayıtın id sini dönderiyor. birde TSQLStoredProc de parametre için EXECPROC iyerine open kullanamıyosun. hata alıyosun.
yukarıdaki kodlar calıştığında ilk önce sıfır değerini gönderiyo. tekrar çalıştığında bir önceki kaydın id sini dönderiyor. adelphiforumz siz nasıl yaptınız??
Kod: Tümünü seç
ALTER PROCEDURE [dbo].[kayitekle] (@ad varchar(25), @soyad varchar(25), @id int output)
AS
INSERT INTO kayit (ad, soyad) VALUES (@ad,@soyad) select @id= @@identity
Kod: Tümünü seç
sp.params.ParamByName('@ad').AsString:=edad.text;
sp.params.ParamByName('@soyad').AsString:=edsoy.text;
EDNO.TEXT:=sp.params.ParamByName('@id').AsString;
sp.ExecProc;
yukarıdaki kodlar calıştığında ilk önce sıfır değerini gönderiyo. tekrar çalıştığında bir önceki kaydın id sini dönderiyor. adelphiforumz siz nasıl yaptınız??
Re: delphi identity değeri yakalama
Kod: Tümünü seç
sp.params.ParamByName('@ad').AsString:=edad.text;
sp.params.ParamByName('@soyad').AsString:=edsoy.text;
EDNO.TEXT:=sp.params.ParamByName('@id').AsString;
sp.ExecProc;
@id bir çıkış parametresi.
execproc komutu sp'yi çalıştırır. Sana bir örnek de gönderdim,
sp'yi çalıştırmadan nasıl çıktı almayı düşünüyorsun.
Benim gönderdiğim kod ile ilgili bir sıkıntı varsa onu söyle.
Re: delphi identity değeri yakalama
abi kodlar çalışıyo ama ilk değer olarak sıfır dönüyor. tekrar sp yi çalıştırdığımda bir önceki kaydın id si dönüyo.
Re: delphi identity değeri yakalama
bu şekilde denediğimdede aynı sonuç . son kaydın id sinde önce sıfır değerinin dönmesi çok ilginç
Kod: Tümünü seç
ALTER procedure [dbo].[yeniID] (@id int output) as
select @id= max(id) from kayit
Re: delphi identity değeri yakalama
sorunu çözdüm
x:=yeniID.paramByName('@id').asinteger;
YeniId.ExecProc;
edno.text:=yeniID.paramByName('@id').asstring;
showmessage(yeniID.paramByName('@id').asstring);
x:=yeniID.paramByName('@id').asinteger;
YeniId.ExecProc;
edno.text:=yeniID.paramByName('@id').asstring;
showmessage(yeniID.paramByName('@id').asstring);