Teilen über


ODBC-Rückgabecodes

Jede Funktion in ODBC gibt einen Code zurück, der als Rückgabecode bezeichnet wird, der den Gesamterfolg oder Fehler der Funktion angibt. Die Programmlogik basiert im Allgemeinen auf Rückgabecodes.

Der folgende Code ruft z. B. SQLFetch auf, um die Zeilen in einem Resultset abzurufen. Er überprüft den Rückgabecode der Funktion, um festzustellen, ob das Ende des Resultsets erreicht wurde (SQL_NO_DATA), ob Warnungsinformationen zurückgegeben wurden (SQL_SUCCESS_WITH_INFO), oder wenn ein Fehler aufgetreten ist (SQL_ERROR).

SQLRETURN   rc;  
SQLHSTMT    hstmt;  
  
while ((rc=SQLFetch(hstmt)) != SQL_NO_DATA) {  
   if (rc == SQL_SUCCESS_WITH_INFO) {  
      // Call function to display warning information.  
   } else if (rc == SQL_ERROR) {  
      // Call function to display error information.  
      break;  
   }  
   // Process row.  
}  

Der Rückgabecode SQL_INVALID_HANDLE gibt immer einen Programmierfehler an und sollte zur Laufzeit nie auftreten. Alle anderen Rückgabecodes stellen Laufzeitinformationen bereit, wenngleich SQL_ERROR einen Programmierfehler angeben kann.

In der folgenden Tabelle werden die Rückgabecodes definiert.

Rückgabecode Beschreibung
SQL_SUCCESS Die Funktion wurde erfolgreich abgeschlossen. Die Anwendung ruft SQLGetDiagField auf, um zusätzliche Informationen aus dem Headerdatensatz abzurufen.
SQL_SUCCESS_WITH_INFO Die Funktion wurde erfolgreich abgeschlossen, möglicherweise mit einem nichtfatalen Fehler (Warnung). Die Anwendung ruft SQLGetDiagRec oder SQLGetDiagField auf, um zusätzliche Informationen abzurufen.
SQL_ERROR Fehler bei der Funktion. Die Anwendung ruft SQLGetDiagRec oder SQLGetDiagField auf, um zusätzliche Informationen abzurufen. Der Inhalt aller Ausgabeargumente für die Funktion ist nicht definiert.
SQL_INVALID_HANDLE Fehler bei der Funktion aufgrund einer ungültigen Umgebung, verbindung, Anweisung oder Beschreibungshandle. Dies weist auf einen Programmierfehler hin. Es sind keine zusätzlichen Informationen aus SQLGetDiagRec oder SQLGetDiagField verfügbar. Dieser Code wird nur zurückgegeben, wenn es sich bei dem Handle um einen Nullzeiger handelt oder der falsche Typ ist, z. B. wenn ein Anweisungshandle für ein Argument übergeben wird, das ein Verbindungshandle erfordert.
SQL_NO_DATA Es waren keine weiteren Daten verfügbar. Die Anwendung ruft SQLGetDiagRec oder SQLGetDiagField auf, um zusätzliche Informationen abzurufen. Mindestens ein treiberdefinierter Statusdatensätze in Der Klasse 02xxx kann zurückgegeben werden. Hinweis: In ODBC 2.x, dieser Rückgabecode wurde SQL_NO_DATA_FOUND benannt.
SQL_NEED_DATA Weitere Daten sind erforderlich, z. B. wenn Parameterdaten zur Ausführungszeit gesendet werden oder zusätzliche Verbindungsinformationen erforderlich sind. Die Anwendung ruft SQLGetDiagRec oder SQLGetDiagField auf, um ggf. zusätzliche Informationen abzurufen.
SQL_STILL_EXECUTING Eine Funktion, die asynchron gestartet wurde, wird weiterhin ausgeführt. Die Anwendung ruft SQLGetDiagRec oder SQLGetDiagField auf, um ggf. zusätzliche Informationen abzurufen.