Announcement

Collapse
No announcement yet.

Fehler von ADO kapseln?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fehler von ADO kapseln?

    Hallo Leute,<br>
    <br>
    ich habe ein großes Problem vor mir. Seit ein paar Stunden versuche ich ein ADO-Fehler der durch einen Falschen SQL-String verursacht wird, zu kapseln. Der Fehler sieht vie folgt aus "falsche Spaltenname"<br>
    Das solte doch mit dem Try-Except-Block gehen, wo bei Auftreten von einem Fehler die Anweisung zwischen except und end ausgeführt wird.
    <b>Was mach ich den falsch!?!<br>
    Warum wird die except Anweisung nicht ausgeführt</b><br>
    Mein Auschnitt aus dem Quelltext:<br>
    begin<br>
    Delete(zeile,2+x[i],10);<br>
    sqlstr := Form1.Parameter['SQL'];<br>
    try<br>
    Erg.Active := False;<br>
    Erg.SQL.Clear;<br>
    Erg.SQL.Add('Select ...);<br>
    Erg.Active := True;<br>
    except<br>
    on EDatabaseError do<br>
    begin<br>
    CloseFile(f1);<br>
    CloseFile(f2);<br>
    DeleteFile(Projekt['PROJEKTNR'] + '.tec');<br>
    Form9.Close;<br>
    messagedlg('Fehlerhaftes String', mterror, [mbok],0);<br>
    Exit;<br>
    end;<br>
    end;<br>
    wert := Erg['var'];<br>
    Str(wert:10:4,s2);<br>
    Insert(s2,zeile,2+x[i]);<br>
    end;<br>
    end;<br>
    Danke im voraus! Krys

  • #2
    Hallo,

    der eigene EXCEPT-Block fängt nur EDatabaseError-Exceptions ab. Die nativen ADO-Objekte von Microsoft lösen jedoch selbst keine Exceptions aus (damit das Ganze auch innerhalb einer ASP oder in einem VB-Programm funktioniert), sondern stellen die Fehlermeldungen über die <b>Errors</b>-Kollektion des <b>Connection</b>-Objekts (alias TADOConnection) zur Verfügung. In den meisten Fällen löst Delphi selbst eine <b>EOleException</b>-Exception aus, wenn die Errors-Kollektion gefüllt ist

    Comment

    Working...
    X