SQLExpress: Fehler abfragen?

SQL Express von Boris Borzic

Moderator: Moderatoren

Antworten
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

SQLExpress: Fehler abfragen?

Beitrag von satmax »

Ich versuche einen Satz zu löschen den ich laut Datenbankdefinition nicht löschen darf weil noch eine Verknüpfung besteht. Es blitzt kurz eine Fehlermeldung auf und im SQLError.log finde ich folgendes:
Windows 7 06.02 Build 09200, SQLXpp: 3.2.15, Runtime: 1.90.355
SQLState: 23000, ErrorCode:547
[Microsoft][ODBC SQL Server Driver][SQL Server]Die DELETE-Anweisung steht in Konflikt mit der REFERENCE-Einschränkung 'FK_Auftrag_Fr'. Der Konflikt trat in der XYV8_Z5-Datenbank, Tabelle 'dbo.Auftrag', column '_ID_Fr' auf.
SQLState: 01000, ErrorCode:3621
[Microsoft][ODBC SQL Server Driver][SQL Server]Die Anweisung wurde beendet.
Jetzt möchte ich aber nicht eine kurze Meldung aufblitzen lassen sondern den Anwender mit einer MSG Box darüber informieren. Die SQL Meldung abschalten kann ich, aber wie kann ich den Fehler bzw. die Fehlermeldung auslesen?

Gruß
Markus
Zuletzt geändert von satmax am Mi, 11. Dez 2013 23:08, insgesamt 1-mal geändert.
Gruß
Markus
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: SQLExpress: Fehler abfragen?

Beitrag von georg »

Hallo, Markus -


ich vermute mal, dass Du mittels :execute("DELETE FROM meinedatei WHERE key = wert") löschen willst?

Die Methode :execute() gibt laut Dokumentation verschiedene Werte zurück, deren Wert Du überprüfen kannst.

Über den Callback onError des SQLConnection() Objekts kannst Du bestimmte Reaktionen realisieren, alternativ kannst Du auch über die Instanzvariablen :ErrorCode bzw. :ErrorMessage Informationen abrufen und an den Benutzer weitergeben.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: SQLExpress: Fehler abfragen?

Beitrag von satmax »

Hallo Georg,

ich verwende zum löschen:

Code: Alles auswählen

oCursor:Delete()
oCursor:Commit()
oCursor:ErrorMessage und oCursor:ErrorCode sind leer. Ich sehe nur die Meldung kurz aufblitzen und eben den Fehler im SQLError.txt File.


Gruß
Markus
Gruß
Markus
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: SQLExpress: Fehler abfragen?

Beitrag von georg »

Hallo, Markus -


versuche es mal mit den entsprechenden Instanzvariablen des SQLConnection()-Objektes.

Wenn es damit auch nicht funktioniert, muss ich mal wieder den Quelltext konsultieren.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: SQLExpress: Fehler abfragen?

Beitrag von satmax »

Hallo Georg,

nein, geht auch nicht. Zusätzlich habe ich versucht mit

oConnection:displayErrors := .f.

die interne Fehlerausgabe abzuschalten, auch das funktioniert nicht. Einzig das :commit() nach dem :delete() liefert .f.

Gruß
Markus
Gruß
Markus
Antworten