projemde ilk olarak kayıt yapıyorum. daha sonra aynı ürünle ilgili kayıt yapacaksam önce veritabanımdan kontrol ettiriyorum. o ID ye sahip bilgiler daha önce kaydolmuşmu olmamışmı? eğer olmamışsa veri kaydetme işlemleriyle kaydediyorum. eğer daha önce kayıt yapılmışsa o ID ye sahip ürün üzerinde güncelleme yapılıyor.
işlemleri baştan yapalım. yeni bi ürün için kayıt yaptım. aynı ürün üzerinde güncelleştirme yapıyorum. buraya kadar sorun yok. eğer bir kez daha güncelleme yapmak istersem bana aşağıdaki hata msjını veriyor.
program bu hatayı verdikten sonra aşağıdaki kodda takılıp kalıyor.project Teklifformu.exe raised exception class EDatabaseError with message 'sorguktaksit: CommandText does not return a result set'. Process stopped. Use Step or Run to continue.
Kod: Tümünü seç
veri.sorguktaksit.Close;

kodlarımın tamamı;
Kod: Tümünü seç
var s1:string;
begin
try
veri.sorguktaksit.Active:=false;
veri.sorguktaksit.Active:=true;
veri.sorguktaksit.Close;
veri.sorguktaksit.SQL.Clear;
veri.sorguktaksit.SQL.Add('select * from STKTAKSITKREDI where ID='+QuotedStr(mmenu.kod.Text));
veri.sorguktaksit.Open;
if veri.sorguktaksit.RecordCount=0 then
begin
veri.ktaksit.Insert;
veri.ktaksit.FieldByName('ID').AsString:=mmenu.kod.Text;
veri.ktaksit.FieldByName('TOPLAMTUTAR').AsFloat:=TUTAR;
veri.ktaksit.FieldByName('AYSAYISI').AsInteger:=ay;
veri.ktaksit.FieldByName('AYLIKTUTAR').AsFloat:=TUTAR/AY;
veri.ktaksit.FieldByName('BANKA').AsString:=banka;
veri.ktaksit.Post;
end
else
begin
s1:=Format('update STKTAKSITKREDI set TOPLAMTUTAR=%18.2f, AYSAYISI=%d, AYLIKTUTAR=%18.2f, BANKA=%s where ID=%s',[TUTAR,ay,TUTAR/ay,QuotedStr(banka),QuotedStr(mmenu.kod.Text)]);
with veri.sorguktaksit do
begin
close;
sql.clear;
sql.text:=s1;
execsql;
end;
end;
except
begin
showmessage('Hata!');
end;
herkese ii çalışmalar
kolay gelsin