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.