Cannot perform this operation on a closed dataset hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kazimates
Üye
Mesajlar: 332
Kayıt: 01 Tem 2005 12:40
Konum: Kıbrıs
İletişim:

Cannot perform this operation on a closed dataset hatası

Mesaj gönderen kazimates »

Kod: Tümünü seç

with Dm1.ADOQDOVIZKUR do
   begin
      close;
      sql.Clear;
      sql.Text:='update DOVIZKUR set DOVIZTARIHI=:DOVTAR,DOVIZTIPI=:DOVTIP,DOVIZALIS=:DOVAL,'+
                'DOVIZSATIS=:DOVSAT,EFEKTIFALIS=:EFAL,EFEKTIFSATIS=:EFSAT where KAYITNO=:KAYNO';
                Parameters.ParamByName('DOVTAR').Value:=DateToStr(DateTimePicker1.Date);
                Parameters.ParamByName('DOVTIP').Value:=EDovTip.Text;
                Parameters.ParamByName('DOVAL').Value:=Edit1.Text;
                Parameters.ParamByName('DOVSAT').Value:=Edit2.Text;
                Parameters.ParamByName('EFAL').Value:=Edit3.Text;
                Parameters.ParamByName('EFSAT').Value:=Edit4.Text;
                Parameters.ParamByName('KAYNO').Value:=dkkayitno;
      ExecSql;
   end;
   showmessage('Kayıt Başarıyla Yapılmıştır!!!');

   {
   Dm1.ADOQDovizKur.Requery();
   DBGrid1.Refresh;
   Dm1.ADOQDovizKur.Last;
   }
buraya kadar delphi7 de sqlserver üzerine update yapılıyor ve bu arada ilgili formdaki dbgrid disable duruma geçiyor vede
Dm1.ADOQDovizKur.Requery(); komutu açılacak olursa bu durumdada

Debugger Exception Notification penceeresi geliyor ve içerisinde hata olarak şu açıklama bulunuyor.

ProjectTest.exe raised exception class EDatabaseError with message 'ADOQDovizKur: Cannot perform this operation on a closed dataset'. Process stopped. Use Step or Run to continue.

şeklinde hata alıyorum bu durumda closed durumda olan dataset i nasıl geri açabilirim.

unutmadan dm1 data modulunde 1 adet adoconnection 1 adasource ve 1 adet deadoquery mevcut.
mcihad
Üye
Mesajlar: 283
Kayıt: 18 Tem 2003 03:28
Konum: Sivas

Mesaj gönderen mcihad »

Galiba SQL cümlesini değiştirmemişin. Requery içindeki SQL cümlesine göre dataseti refresh eder. SQL ifadesini temizleyip tekrar select eklemen gerekir. Daha sonrada dataseti açman gerekir.
Dataset.sql.clear;
Dataset.sql.add('select * from dovizkur');
Dataset.open
Bize iyilik yaraşır.
Cevapla