SQLExpress: Fehler abfragen?

SQL Express von Boris Borzic

Moderator: Moderatoren

SQLExpress: Fehler abfragen?

Beitragvon 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
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
 
Beiträge: 775
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich

Re: SQLExpress: Fehler abfragen?

Beitragvon 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
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1769
Registriert: Fr, 08. Feb 2008 21:29

Re: SQLExpress: Fehler abfragen?

Beitragvon 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
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
 
Beiträge: 775
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich

Re: SQLExpress: Fehler abfragen?

Beitragvon 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
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1769
Registriert: Fr, 08. Feb 2008 21:29

Re: SQLExpress: Fehler abfragen?

Beitragvon 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
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
 
Beiträge: 775
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich


Zurück zu SQLExpress

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast