Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

Fehler bei einem aus mehreren Schritten bestehenden Vorgang.

  Alt 5. Nov 2010, 16:46
Datenbank: oracle • Version: egal • Zugriff über: tado
Hallo zusammen,
ich habe folgende Fehlermeldung bei einer Abfrage mit ADOQuery bekommen:
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt UPDATE.exe ist eine Exception der Klasse EOleException mit der Meldung 'Fehler bei einem aus mehreren Schritten bestehenden Vorgang. Prüfen Sie die einzelnen Statuswerte' aufgetreten.
---------------------------
Umgehen konnte ich den Fehler, indem ich ein paar Felder von der Ausgabe ausgeschlossen habe oder indem ich das Datum gleich als String ausgegeben habe (to_date(...)).

Ich finde es nur seltsam, daß diese Abfrag erst beim 100. oder 125. oder 130. oder ... Durchlauf vor die Wand läuft. Wisst Ihr wo es da klemmt?

Delphi-Quellcode:
const
  sqltext='select tabdos.idedos,coddos,noorig,tabbre.numdep,tabbre.datdep,tabpay.codpay '+
          ',tabbre.numpub,tabbre.datpub,tabbre.numdlv,tabbre.datdlv'+
          ',to_char(tabbre.datexp,''YYYYMMDD'') datexp,to_char(tabbre.databd,''YYYYMMDD'') databd '+ { so geht's}
       // ',tabbre.datexp,tabbre.databd ' -- so geht's nicht
          'from tabdos,tabbre,tabpay '+
          'where tabdos.idedos=tabbre.idedos '+
          ' and tabpay.idepay=tabbre.idepay '+
          ' and tabbre.idebre=:_idebre ';

begin
  result:='';
  upd_dm.ADOQ_MIS.close;
  upd_dm.ADOQ_MIS.sql.Text:=sqltext;
  upd_dm.ADOQ_MIS.Parameters.ParamByName('_idebre').value:=idebre;
  upd_dm.ADOQ_MIS.open;
  if not upd_dm.ADOQ_MIS.eof then begin
    repeat
      result:='CODDOS='+upd_dm.ADOQ_MIS.fieldbyname('coddos').AsString+
              ' NOORIG='+upd_dm.ADOQ_MIS.fieldbyname('noorig').AsString+
              ' CODPAY='+upd_dm.ADOQ_MIS.fieldbyname('codpay').AsString+
              ' NUMDEP='+upd_dm.ADOQ_MIS.fieldbyname('numdep').AsString+
              ' DATDEP='+upd_dm.ADOQ_MIS.fieldbyname('datdep').AsString+
              ' NUMPUB='+upd_dm.ADOQ_MIS.fieldbyname('numpub').AsString+
              ' DATPUB='+upd_dm.ADOQ_MIS.fieldbyname('datpub').AsString+
              ' NUMDLV='+upd_dm.ADOQ_MIS.fieldbyname('numdlv').AsString+
              ' DATDLV='+upd_dm.ADOQ_MIS.fieldbyname('datdlv').AsString+
              ' DATABD='+upd_dm.ADOQ_MIS.fieldbyname('databd').AsString+
              ' DATEXP='+upd_dm.ADOQ_MIS.fieldbyname('datexp').AsString;
      upd_dm.ADOQ_MIS.next;
    until upd_dm.ADOQ_MIS.eof;
  end;
  upd_dm.ADOQ_MIS.close;
end;
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat