Delphi Can

Orjinalini görmek için tıklayınız: store procedure ile toplama islemi
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
arkadaslar FYT adinda bir alanim var 
fiyat alaninda 30 degeri varsa store procedure ile gonderdigim 20 degerini toplatmak istiyorum olmuyor neyi eksik yapiyorum acaba
saygilar

bu kod calisiyor.

begin
 update tbl_oyunlargecici set FYT=FYT+1) where ID=1;
 suspend;
end

bu sekilde yaptigimda hata aliyorum
begin
 update tbl_oyunlargecici set FYT=gln+1) where ID=1;
 suspend;
end


hata kodu
Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
GLN.
At line 7, column 44.



gln:strore procedure icin gelen yeni integer deger

update tbl_oyunlargecici set FYT=:gln where ID=1;

bu sekilde degiskeni kaydetmeyi basardim bakalim toplama yapmayi becerebilecekmiyim

update tbl_oyunlargecici set FYT=FYT+:gln where ID=1;
 suspend;

bu sekilde toplama yapabilmak icin naasil bir degisiklik yapmak lazim
update tbl_oyunlargecici set FYT=FYT+:gln where ID=1;

Bu kod ile istedigim seyi yaptim formdan gonderdigim degeri alandaki degerle toplayip update yapabildim
dogru bir yontem mi bilmiyorum.
saygilar
bir sey merak ediyorum tablodaki FYT alanindaki degeri variable degisken tanimlayip ona alsak
sonra gelen degerle toplasak sonra tabloyu guncellesek
boyle bir sey yapabilirmiyiz
(20-04-2024, Saat: 18:51)sadikacar60 Adlı Kullanıcıdan Alıntı: [ -> ]update tbl_oyunlargecici set FYT=FYT+:gln where ID=1;

Bu kod ile istedigim seyi yaptim formdan gonderdigim degeri alandaki degerle toplayip update yapabildim
dogru bir yontem mi bilmiyorum.
saygilar
bir sey merak ediyorum tablodaki FYT alanindaki degeri variable degisken tanimlayip ona alsak
sonra gelen degerle toplasak sonra tabloyu guncellesek
boyle bir sey yapabilirmiyiz

dışarıdan variable kullanımına örnek olarak ;
veritabanı ne kullanıyorsunuz bilmiyorum ama 
sql server için şöyle bir metot olabilir

declare @val float
set @val = :gln 
update tbl_oyunlargecici set FYT=FYT+ @val where ID=1;

yada

declare @val float = :gln
update tbl_oyunlargecici set FYT=FYT+ @val where ID=1;

ancak sizin yazdığınız kod daha kısa ve sade .
aynı işi yapan, ne kadar az kod, o kadar az dert bence Smile
update tbl_oyunlargecici set FYT=FYT+:gln where ID=1;

diğer türlü önce tablodan veriyi okuyup değişkene yazıp,
sonra gelen değerle bunu dışarıda toplayıp
daha sonra update etmek fazladan kaynak tüketmek olur ki pek tavsiye etmem.

variable kullanımı olarak bunu mu kastetmiştiniz ?
doğru mu anlamışım
evet hocam ibexpert ide ve firebird kullaniyorum.

baska bir procedure daha yazmam gerekti bu sefer 2 adet degisken gelmeli.
 store procedureyi asagidaki sekilde yazdim 
denedim ibexpert uzerinde hatasiz calisiyor ama delphi uzerinden data gondermeye calistigimda hata aliyorum 1 adet degisken gondermeye gore duzenleyince kod calisiyor ama ikinci degiskeni gondermek istedigimde hata aliyorum.

begin

update tbl_kasa set PARA=PARA+:ekpara WHERE BID=:GBID;
suspend;
end

ekpara:integer
bgid:nvarchar

delphi kodu asagidaki sekilde
bid:='01012023120757';
data:='3';


 DMvtRes.IBQuery2.Close;
 str:='execute procedure KASA_PARA_ILAVESI('''+bid+''','''+data+''' )';
 DMvtRes.IBQuery2.SQL.Text:=str;

 DMvtRes.IBQuery2.ExecSQL;

data yi her iki taraftan silip sadece bid gonderecek sekilde duzenleme yaptigimda kod calisiyor ama ikinci degiskene gore duzenleme
yapip denedigimde hata aliyorum
 saygilarimla
degiskenleri yanlis siraya gore gonderiyormusum
yerlerini degisince duzeldi

saygilar sunarim.
(21-04-2024, Saat: 11:52)sadikacar60 Adlı Kullanıcıdan Alıntı: [ -> ]degiskenleri yanlis siraya gore gonderiyormusum
yerlerini degisince duzeldi

saygilar sunarim.


bende hata mesajı ve kod paylaşır mısınız oradan bakalım diyecektim, 
çözmüşsünüz  My