Kapitel 10: SQL Server
Dass sich die Fehlerbehandlung auf dem Server nicht auf die Anzeige eines einfachen Dialogfeldes be-
schränken kann, dürfte auf der Hand liegen. Deshalb werden Ereignisse im SQL Server-Fehlerprotokoll, im
Windows-Anwendungsprotokoll oder in beiden protokolliert:
Abbildung 10.37 Fehlerprotokoll in der Ereignisanzeige
Der SQL Server unterscheidet, im Gegensatz zu VBA, die Fehler nach bestimmten Schweregraden:
Bei Fehlern mit einem Schweregrad von 10 handelt es sich um Informationsmeldungen, die durch
Fehler in den eingegebenen Informationen hervorgerufen wurden.
Schweregrade von 11 bis 16 werden vom Benutzer erzeugt und können auch durch diesen behoben wer-
den. Selbst definierte Fehlermeldungen sollten in diesem Bereich liegen.
Software- oder Hardwarefehler haben die Schweregrade 17 bis 25. Der Fehler muss durch den System-
administrator behoben werden. Liegt der Schweregrad zwischen 17 und 19, können Sie Ihre Arbeit
dennoch fortsetzen, auch wenn möglicherweise eine bestimmte Anweisung nicht ausführbar ist.
Verwenden von @@ERROR
Möchten Sie Fehler innerhalb einer Gespeicherten Prozedur oder eines Triggers behandeln, können Sie die
Variable @@ERROR auswerten. Diese gibt 0 zurück, wenn die letzte Anweisung erfolgreich ausgeführt wer-
den konnte, andernfalls die Fehlernummer. In der Prozedur selbst steht Ihnen weder der Schweregrad noch
der Status der Meldungstexte zur Verfügung, dieser kann ausschließlich in der Frontend-Anwendung (in
diesem Fall Ihr Visual Basic-Programm) ausgewertet werden.
Zwei Varianten bieten sich für die Auswertung von @@ERROR an:
Sofortiges Testen oder Verwenden von @@ERROR nach der Anweisung.
Speichern von @@ERROR in einer ganzzahligen Variablen, sofort nachdem die TransactSQL-
Anweisung abgeschlossen ist. Der Wert der Variablen kann später verwendet oder über Return zurück-
gegeben werden.
654

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.