Einzelnen Beitrag anzeigen

Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Fehlerbehandlung von Stored Procedures

  Alt 19. Nov 2007, 09:48
Du kannst, wie du ja schon machst, über @@error den Fehler abfragen. Speichere den Wert in einer Zwischenvariablen und prüfe anschliessend über

SQL-Code:
if @myError <> 0 BEGIN
   goto ErrorHandler
END

-- Hier der normale Ablauf
Goto ExitProc

ErrorHandler:
Rollback Tran
return


ExitProc:
return
deinen Fehler.
Laut meinem Buch wird beim Fehler zum Label ErrorHandler gesprungen. Dort kannst du auf jeden Fall noch ein paar Aktionen durchführen. Ob der Return allerdings nun dennoch einen Fehler auf Clientseite auslöst, weiss ich nicht.

Hast du vielleicht eine Möglichkeit einen SQL Server der Version 2005 zu nutzen. Dort gibts ein neues Errorhandling über Try...catch Blöcke wie man sie von anderen Programmiersprachen her kennt. Da wird auf jeden Fall die Fehlermeldung beim Client unterbunden. Soll sie dennoch ausgelöst werden, reicht ein erneuter Raiserror im Catch-Block.
  Mit Zitat antworten Zitat