![]() |
Datenbank: SQL Server 2000 • Zugriff über: ADO
ADO Exception
Hallo,
steige gerade von BDE auf ADO um. Habe dazu Query durch ADOQuery ersetzt. Läuft auch alles. Nur wie fange ich jetzt (mit ADO) die Fehler z.B. doppelter Schlüssel ab? Der u.g. Mechanismus beruhte auf BDE. try Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('select * from TABLE'); Query1.Open; Query1.Append; Query1.FieldByName('nr').AsInteger := nr; Query1.Post; except on E: EDBEngineError do if E.Errors[0].ErrorCode = 9729 then Begin MessageDlg('Fehler bei Insert (duplicate key)! ' + IntToStr(e.errors[0].errorcode) , mtError, [mbOK], 0); Query1.Cancel; end else MessageDlg('Fehler bei Insert! ' + IntToStr(e.errors[0].errorcode) , mtError, [mbOK], 0); end; jangbu |
Re: ADO Exception
Hat da wirklich keine eine Idee?
jangbu |
Re: ADO Exception
Wieso diese Unterscheidung? Lass doch einfach die ErrorMessage der Exception ausgeben, die ist hoffentlich auch aussagefähig.
|
Re: ADO Exception
Liste der Anhänge anzeigen (Anzahl: 1)
DeddyH,
ich habe versucht einen Datensatz einzufügen der auf einen doppelten Schlüssel Fehler läuft. Ich bekomme leider nur eine allgemeine Fehlermeldung zurück. mtError ist leer?! Mit der BDE bekam ich die Fehlernummer 9729 -> duplicate key. Warum steht in mtError nichts drin? jangbu |
Re: ADO Exception
Hi,
ist der normale Fehlertext nicht aussagekräftig genug, dass du das nochmal extra abfängst? Was kommt denn für eine Exceptionklasse zurück? Vielleicht die auswerten bzw. die Message der Exception.
Delphi-Quellcode:
Grußtry Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('select * from TABLE'); Query1.Open; Query1.Append; Query1.FieldByName('nr').AsInteger := nr; Query1.Post; except on E: Exception do MessageDlg(E.Classname + ' ' + E.Message , mtError, [mbOK], 0); Query1.Cancel; end; Matthias |
Re: ADO Exception
Zitat:
|
Re: ADO Exception
Danke,
das war's. E.Message enthält eindeutige Info! jangbu |
Re: ADO Exception
Hallo,
oder du benutzt EADOError statt EDBEngineError. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz