Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

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: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

SQLExpress: Fehler abfragen?

Beitrag von satmax » Mo, 09. Dez 2013 21:54

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: 1933
Registriert: Fr, 08. Feb 2008 21:29

Re: SQLExpress: Fehler abfragen?

Beitrag von georg » Di, 10. Dez 2013 8:18

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

Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: SQLExpress: Fehler abfragen?

Beitrag von satmax » Di, 10. Dez 2013 10:00

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: 1933
Registriert: Fr, 08. Feb 2008 21:29

Re: SQLExpress: Fehler abfragen?

Beitrag von georg » Di, 10. Dez 2013 10:39

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

Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: SQLExpress: Fehler abfragen?

Beitrag von satmax » Di, 10. Dez 2013 13:20

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