Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Anweisungen » SQL-Anweisungen (P-Z)

 

WHENEVER-Anweisung [ESQL]

Mit dieser Anweisung definieren Sie eine Fehlerbehandlung in Embedded SQL-Programmen.

Syntax
WHENEVER { SQLERROR | SQLWARNING | NOTFOUND }
GOTO Label | STOP | CONTINUE | { C-Code; }
Label :  Bezeichner
Bemerkungen

Die WHENEVER-Anweisung wird verwendet, um Fehlermeldungen, Warnungen und besondere Bedingungen abzufangen, auf welche die Datenbank bei der Verarbeitung von SQL-Anweisungen trifft. Die Anweisung kann in einem Embedded SQL-Programm an eine beliebige Stelle gesetzt werden und erzeugt keinen Code. Der Präprozessor erzeugt nach jeder aufeinanderfolgenden SQL-Anweisung Codes. Die Fehleraktion bleibt für alle Embedded SQL-Anweisungen aus der Quellzeile der WHENEVER-Anweisung bis zur nächsten WHENEVER-Anweisung mit demselben Fehlerzustand oder bis zum Ende der Quelldatei gültig.

Fehler aufgrund der Quellposition

Fehlerbedingungen basieren auf der Positionierung in der Quelldatei in der C-Sprache und nicht auf der Ausführung der Anweisungen.

Die Standardaktion ist CONTINUE.

Beachten Sie, dass diese Anweisung für den Bedienkomfort in einfachen Programmen bereitgestellt wird. Meistens ist es am einfachsten, das sqlcode-Feld des SQLCA (SQLCODE) direkt zu überprüfen, um Fehlerzustände zu prüfen. In diesem Fall würde die WHENEVER-Anweisung nicht verwendet werden. <Die WHENEVER-Anweisung veranlasst nämlich den Präprozessor nur dazu, nach jeder Anweisung einen if(SQLCODE)-Test auszugeben.

Berechtigungen

Keine.

Nebenwirkungen

Keine.

Standards und Kompatibilität
  • SQL/2003   Kernfunktion.

Beispiel

Im Folgenden werden Beispiele für die WHENEVER-Anweisung gegeben:

EXEC SQL WHENEVER NOTFOUND GOTO done;
EXEC SQL WHENEVER SQLERROR
   {
      PrintError( &sqlca );
      return( FALSE );
   };