arkadaşlar merhaba yazdığım bi procedure interbase sql editöründe sorunsuz çalışıyor delphide hata veriyor sebebi neden olabilir.
procedure aşağıda
SET TERM !!;
CREATE PROCEDURE TAHSILAT_YAP (C_KODU INTEGER, S_KODU INTEGER, T_ALINAN FLOAT, T_TARIHI TIMESTAMP, T_TURU VARCHAR(25) CHARACTER SET WIN1254)
AS
DECLARE VARIABLE THS_TURU VARCHAR(25);
BEGIN
THS_TURU=:T_TURU;
INSERT INTO CARI_TAKSIT_TAHSILAT (CARI_KODU, SATIS_KODU, ALINAN, ODEME_TARIHI, ODEME_TURU)
VALUES (:C_KODU, :S_KODU, :T_ALINAN, :T_TARIHI, :T_TURU);
IF (THS_TURU = 'NAKİT') THEN
UPDATE CARI SET ALACAK = ALACAK + :T_ALINAN, TOPLAM_BAKIYE = TOPLAM_BAKIYE - :T_ALINAN WHERE CARI_KODU=:C_KODU;
IF (THS_TURU = 'KREDİ KARTI') THEN
UPDATE CARI SET ALACAK = ALACAK + :T_ALINAN, TOPLAM_BAKIYE = TOPLAM_BAKIYE - :T_ALINAN WHERE CARI_KODU=:C_KODU;
IF (THS_TURU = 'ÇEK') THEN
UPDATE CARI SET ALINAN_CEK = ALINAN_CEK + :T_ALINAN, TOPLAM_BAKIYE = TOPLAM_BAKIYE - :T_ALINAN WHERE CARI_KODU=:C_KODU;
IF (THS_TURU = 'SENET') THEN
UPDATE CARI SET ALINAN_SENET = ALINAN_SENET + :T_ALINAN, TOPLAM_BAKIYE = TOPLAM_BAKIYE - :T_ALINAN WHERE CARI_KODU=:C_KODU;
END!!
SET TERM ; !!
delphi kodu
B:= 10000;
BP.Params[0].AsInteger:= 1;
BP.Params[1].AsInteger:= 1;
BP.Params[2].ASFLOAT:= B;
BP.Params[3].AsSTRING:= '01/01/2005';
BP.Params[4].ASSTRING:= 'NAKİT';
BP.ExecProc;
DM.IBTransaction1.CommitRetaining;
sorun nerede yardımcı olabilirmisiniz.
teşekkürler...
stored procedure interbase sql editöründe çalışıyor delphide
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Sorun şurada olabilir:
T_TARIHI TIMESTAMP, vermişsin
Burada:
BP.Params[3].AsSTRING:= '01/01/2005';
demişsin. Bu değer timestamp değil. date...
Bu ifadeyi:
BP.Params[3].AsDateTime:= StrToDateTime('01.01.2005 00:00')';
Yaparsan büyük ihtimalle sonuca ulaşırsın. Büyük ihtimal diyorum çünkü syntax'ı kontrol etmedim.
T_TARIHI TIMESTAMP, vermişsin
Burada:
BP.Params[3].AsSTRING:= '01/01/2005';
demişsin. Bu değer timestamp değil. date...
Bu ifadeyi:
BP.Params[3].AsDateTime:= StrToDateTime('01.01.2005 00:00')';
Yaparsan büyük ihtimalle sonuca ulaşırsın. Büyük ihtimal diyorum çünkü syntax'ı kontrol etmedim.