Anhang A: ODBC-Fehlercodes
In diesem Thema werden SQLSTATE-Werte für ODBC 3 erläutert. x. Weitere Informationen zu ODBC 3. x SQLSTATE-Werte, siehe SQLSTATE-Zuordnungen.
SQLGetDiagRec oder SQLGetDiagField gibt SQLSTATE-Werte zurück, wie von Open Group Datenverwaltung definiert: strukturierte Abfragesprache (SQL), Version 2 (März 1995). SQLSTATE-Werte sind Zeichenfolgen, die fünf Zeichen enthalten. In der folgenden Tabelle sind SQLSTATE-Werte aufgeführt, die ein Treiber für SQLGetDiagRec zurückgeben kann.
Der für eine SQLSTATE zurückgegebene Zeichenfolgenwert besteht aus einem zweistelligen Klassenwert gefolgt von einem dreistelligen Unterklassenwert. Der Klassenwert "01" gibt eine Warnung an und wird von einem Rückgabecode von SQL_SUCCESS_WITH_INFO begleitet. Andere Klassenwerte als "01", mit Ausnahme der Klasse "CHAT", weisen auf einen Fehler hin und werden von einem Rückgabewert von SQL_ERROR begleitet. Die Klasse "CHAT" ist spezifisch für Warnungen und Fehler, die von der Odbc-Implementierung selbst abgeleitet werden. Der Unterklassenwert "000" in einer beliebigen Klasse gibt an, dass für diese SQLSTATE keine Unterklasse vorhanden ist. Die Zuweisung von Klassen- und Unterklassenwerten wird durch SQL-92 definiert.
Hinweis
Obwohl die erfolgreiche Ausführung einer Funktion normalerweise durch den Rückgabewert SQL_SUCCESS angegeben wird, gibt SQLSTATE 00000 auch den Erfolg an.
SQLSTATE | Fehler | Kann von zurückgegeben werden |
---|---|---|
01000 | Allgemeine Warnung | Alle ODBC-Funktionen mit Ausnahme von: Sqlerror SQLGetDiagField SQLGetDiagRec |
01001 | Cursorvorgangskonflikt | SQLExecDirect SQLExecute SQLParamData SQLSetPos |
01002 | Verbindungsfehler | SQLDisconnect |
01003 | NULL-Wert in set-Funktion entfernt | SQLExecDirect SQLExecute SQLParamData |
01004 | Zeichenfolgendaten, rechts abgeschnitten | SQLBrowseConnect SQLBulkOperations SQLColAttribute SQLDataSources SQLDescribeCol SQLDriverConnect SQLDrivers SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetConnectAttr SQLGetCursorName SQLGetData SQLGetDescField SQLGetDescRec SQLGetEnvAttr SQLGetInfo 'SQLGetStmtAttr' SQLNative Sql SQLParamData SQLPutData SQLSetCursorName |
01006 | Berechtigung nicht widerrufen | SQLExecDirect SQLExecute SQLParamData |
01007 | Berechtigung nicht gewährt | SQLExecDirect SQLExecute SQLParamData |
01S00 | Ungültiges Verbindungszeichenfolgen-Attribut | SQLBrowseConnect SQLDriverConnec |
01S01 | Fehler in Zeile | SQLBulkOperations SQLExtendedFetch SQLSetPos |
01S02 | Optionswert geändert | SQLBrowseConnect SQLConnect SQLDriverConnect SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetConnectAttr SQLSetDescField SQLSetEnvAttr SQLSetStmtAttr |
01S06 | Abrufen, bevor das Resultset das erste Rowset zurückgegeben hat | SQLExtendedFetch SQLFetchScroll |
01S07 | Bruchkürzung | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLSetPos |
01S08 | Fehler beim Speichern des Datei-DSN | SQLDriverConnect |
01S09 | Ungültiges Schlüsselwort | SQLDriverConnect |
07001 | Falsche Anzahl von Parametern | SQLExecDirect SQLExecute |
07002 | COUNT-Feld falsch | SQLExecDirect SQLExecute SQLParamData |
07005 | Vorbereitete Anweisung, keine Cursorspezifikation | SQLColAttribute SQLDescribeCol |
07006 | Verletzung des eingeschränkten Datentyp-Attributs | SQLBindCol SQLBindParameter SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
07009 | Ungültiger Deskriptorindex | SQLBindCol SQLBindParameter SQLBulkOperations SQLColAttribute SQLDescribeCol SQLDescribeParam SQLFetch SQLFetchScroll SQLGetData SQLGetDescField SQLGetDescRec SQLParamData SQLSetDescField SQLSetDescRecSQLSetPos |
07S01 | Ungültige Verwendung des Standardparameters | SQLExecDirect SQLExecute SQLParamData SQLPutData |
08001 | Client kann keine Verbindung herstellen | SQLBrowseConnect SQLConnect SQLDriverConnect |
08002 | Verwendeter Verbindungsname | SQLBrowseConnect SQLConnect SQLDriverConnect SQLSetConnectAttr |
08003 | Verbindung nicht geöffnet | SQLAllocHandle SQLDisconnect SQLEndTran SQLGetConnectAttr SQLGetInfo SQLNativeSql SQLSetConnectAttr |
08004 | Der Server hat die Verbindung abgelehnt. | SQLBrowseConnect SQLConnect SQLDriverConnect |
08007 | Verbindungsfehler während der Transaktion | SQLEndTran |
08S01 | Kommunikationslinkfehler | SQLBrowseConnect SQLColumnPrivileges SQLColumns SQLConnect SQLCopyDesc SQLDescribeCol SQLDescribeParam SQLDriverConnect SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLForeignKeys SQLGetConnectAttr SQLGetData SQLGetDescField SQLGetDescRec SQLGetFunctions SQLGetInfo SQLGetTypeInfo SQLMoreResults SQLNativeSql SQLNumParams SQLNumResultCols SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns 'SQLProcedures' SQLPutData SQLSetConnectAttr SQLSetDescField SQLSetDescRec SQLSetEnvAttr SQLSetStmtAttr 'SQLSpecialColumns' 'SQLStatistics' SQLTablePrivileges SQLTables |
21S01 | Insert value list does not match column list | SQLExecDirect SQLPrepare |
21S02 | Grad der abgeleiteten Tabelle stimmt nicht mit der Spaltenliste überein | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetPos |
22001 | Zeichenfolgendaten, rechts abgeschnitten | SQLBulkOperations SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLParamData SQLPutData SQLSetDescField SQLSetPos |
22002 | Indikatorvariable erforderlich, aber nicht angegeben | SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData |
22003 | Numerischer Wert außerhalb des Bereichs | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLGetInfo SQLParamData SQLPutData SQLSetPos |
22007 | Ungültiges datetime-Format | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22008 | Datetime-Feldüberlauf | SQLBulkOperations SQLExecDirect QLParamData SQLPutData |
22012 | Division by Zero | SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLPutData |
22015 | Intervallfeldüberlauf | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22018 | Ungültiger Zeichenwert für die Umwandlungsspezifikation | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22019 | Ungültiges Escapezeichen | SQLExecDirect SQLExecute SQLPrepare |
22025 | Ungültige Escapesequenz | SQLExecDirect SQLExecute SQLPrepare |
22026 | Zeichenfolgendaten, nicht übereinstimmende Länge | SQLParamData |
23000 | Verletzung der Integritätseinschränkung | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLSetPos |
24.000 | Ungültiger Cursorstatus | SQLBulkOperations SQLCloseCursor SQLColumnPrivileges SQLColumns SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLForeignKeys SQLGetData 'SQLGetStmtAttr' SQLGetTypeInfo SQLNativeSql SQLPrepare SQLPrimaryKeys SQLProcedureColumns 'SQLProcedures' SQLSetConnectAttr SQLSetCursorName SQLSetPos SQLSetStmtAttr 'SQLSpecialColumns' 'SQLStatistics' SQLTablePrivileges SQLTables |
25000 | Ungültiger Transaktionsstatus | SQLDisconnect |
25S01 | Transaktionsstatus | SQLEndTran |
25S02 | Transaktion ist weiterhin aktiv | SQLEndTran |
25S03 | Transaktion wird zurückgesetzt | SQLEndTran |
28000 | Ungültige Autorisierungsspezifikation | SQLBrowseConnect SQLConnect SQLDriverConnect |
34000 | Ungültiger Cursorname | SQLExecDirect SQLPrepare SQLSetCursorName |
3C000 | Doppelter Cursorname | SQLSetCursorName |
3D000 | Ungültiger Katalogname | SQLExecDirect SQLPrepare SQLSetConnectAttr |
3F000 | Ungültiger Schemaname | SQLExecDirect SQLPrepare |
40001 | Serialisierungsfehler | SQLBulkOperations SQLColumnPrivileges SQLColumns SQLEndTran SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetTypeInfo SQLMoreResults SQLParamData SQLPrimaryKeys SQLProcedureColumns 'SQLProcedures' SQLSetPos 'SQLSpecialColumns' 'SQLStatistics' SQLTablePrivileges SQLTables |
40002 | Verletzung der Integritätseinschränkung | SQLEndTran |
40003 | Anweisungsabschluss unbekannt | SQLBulkOperations SQLColumnPrivileges SQLColumns SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetTypeInfo SQLMoreResults SQLPrimaryKeys SQLProcedureColumns 'SQLProcedures' SQLParamData SQLSetPos 'SQLSpecialColumns' 'SQLStatistics' SQLTablePrivileges SQLTables |
42000 | Syntaxfehler oder Zugriffsverletzung | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetPos |
42S01 | Basistabelle oder -sicht bereits vorhanden | SQLExecDirect SQLPrepare |
42S02 | Basistabelle oder -ansicht nicht gefunden | SQLExecDirect SQLPrepare |
42S11 | Index bereits vorhanden | SQLExecDirect SQLPrepare |
42S12 | Index nicht gefunden | SQLExecDirect SQLPrepare |
42S21 | Spalte bereits vorhanden | SQLExecDirect SQLPrepare |
42S22 | Spalte nicht gefunden | SQLExecDirect SQLPrepare |
44000 | WITH CHECK OPTION-Verstoß | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLSetPos |
HY000 | Allgemeiner Fehler | Alle ODBC-Funktionen außer: Sqlerror SQLGetDiagField SQLGetDiagRec |
HY001 | Fehler bei der Speicherbelegung | Alle ODBC-Funktionen außer: Sqlerror SQLGetDiagField SQLGetDiagRec |
HY003 | Ungültiger Anwendungspuffertyp | SQLBindCol SQLBindParameter SQLGetData |
HY004 | Ungültiger SQL-Datentyp | SQLBindParameter SQLGetTypeInfo |
HY007 | Zugeordnete Anweisung ist nicht vorbereitet | SQLCopyDesc SQLGetDescField SQLGetDescRec |
HY008 | Vorgang abgebrochen | Alle ODBC-Funktionen, die asynchron verarbeitet werden können: SQLBrowseConnect SQLBulkOperations SQLColAttribute SQLColumnPrivileges SQLColumns SQLConnect SQLDescribeCol SQLDescribeParam SQLDisconnect SQLDriverConnect SQLEndTran SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLForeignKeys SQLGetData SQLGetTypeInfo SQLMoreResults SQLNumParams SQLNumResultCols SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns 'SQLProcedures' SQLPutData SQLSetConnectAttr SQLSetPos 'SQLSpecialColumns' 'SQLStatistics' SQLTablePrivileges SQLTables |
HY009 | Ungültige Verwendung von NULL-Zeiger | SQLAllocHandle SQLBindParameter SQLBulkOperations SQLColumnPrivileges SQLColumns SQLExecDirect SQLForeignKeys SQLGetCursorName SQLGetData SQLGetFunctions SQLNativeSql SQLPrepare SQLPrimaryKeys SQLProcedureColumns 'SQLProcedures' SQLPutData SQLSetConnectAttr SQLSetCursorName SQLSetEnvAttr SQLSetStmtAttr 'SQLSpecialColumns' 'SQLStatistics' SQLTablePrivileges SQLTables |
HY010 | Funktionssequenzfehler | SQLAllocHandle SQLBindCol SQLBindParameter SQLBulkOperations SQLCloseCursor SQLColAttribute SQLColumnPrivileges SQLColumns SQLCopyDesc SQLDescribeCol SQLDescribeParam SQLDisconnect SQLEndTran SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLForeignKeys SQLFreeHandle 'SQLFreeStmt' SQLGetConnectAttr SQLGetCursorName SQLGetData SQLGetDescField SQLGetDescRec SQLGetFunctions 'SQLGetStmtAttr' SQLGetTypeInfo SQLMoreResults SQLNumParams SQLNumResultCols SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns 'SQLProcedures' SQLPutData SQLRowCount SQLSetConnectAttr SQLSetCursorName SQLSetDescField SQLSetEnvAttr SQLSetDescRec SQLSetPos SQLSetStmtAttr 'SQLSpecialColumns' 'SQLStatistics' SQLTablePrivileges SQLTables |
HY011 | Attribut kann jetzt nicht festgelegt werden | SQLBulkOperations SQLParamData QLSetPos SQLSetStmtAttr |
HY012 | Ungültiger Transaktionsvorgangscode | SQLEndTran |
HY013 | Fehler bei der Speicherverwaltung | Alle ODBC-Funktionen außer: SQLGetDiagField SQLGetDiagRec |
HY014 | Grenzwert für die Anzahl überschrittener Handles | SQLAllocHandle |
HY015 | Kein Cursorname verfügbar | SQLGetCursorName |
HY016 | Ein Implementierungszeilendeskriptor kann nicht geändert werden. | SQLCopyDesc SQLSetDescField SQLSetDescRec |
HY017 | Ungültige Verwendung eines automatisch zugeordneten Deskriptorhandles | SQLFreeHandle SQLSetStmtAttr |
HY018 | Vom Server abgelehnte Abbruchanforderung | SQLCancel |
HY019 | Nicht-Zeichen- und Nicht-Binärdaten, die in Teilen gesendet werden | SQLPutData |
HY020 | Versuch, einen NULL-Wert zu verketten | SQLPutData |
HY021 | Inkonsistente Deskriptorinformationen | SQLBindParameter SQLCopyDesc SQLGetDescField SQLSetDescField SQLSetDescRec |
HY024 | Ungültiger Attributwert | SQLSetConnectAttr SQLSetEnvAttr SQLSetStmtAttr |
HY090 | Ungültige Zeichenfolgen- oder Pufferlänge | SQLBindCol SQLBindParameter SQLBrowseConnect SQLBulkOperations SQLColAttribute SQLColumnPrivileges SQLColumns SQLConnect SQLDataSources SQLDescribeCol SQLDriverConnect SQLDrivers SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetConnectAttr SQLGetCursorName SQLGetData SQLGetDescField SQLGetInfo 'SQLGetStmtAttr' SQLNativeSql SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns 'SQLProcedures' SQLPutData SQLSetConnectAttr SQLSetCursorName SQLSetDescField SQLSetDescRec SQLSetEnvAttr SQLSetStmtAttr SQLSetPos 'SQLSpecialColumns' 'SQLStatistics' SQLTablePrivileges SQLTables |
HY091 | Ungültiger Deskriptorfeldbezeichner | SQLColAttribute SQLGetDescField SQLSetDescField |
HY092 | Ungültiger Attribut-/Optionsbezeichner | SQLAllocHandle QLBulkOperations SQLCopyDesc SQLDriverConnect SQLEndTran 'SQLFreeStmt' SQLGetConnectAttr SQLGetEnvAttr QLParamData SQLSetConnectAttr SQLSetDescField SQLSetEnvAttr SQLSetPos SQLSetStmtAttr |
HY095 | Funktionstyp außerhalb des Bereichs | SQLGetFunctions |
HY096 | Ungültiger Informationstyp | SQLGetInfo |
HY097 | Spaltentyp außerhalb des Bereichs | 'SQLSpecialColumns' |
HY098 | Bereichstyp außerhalb des Bereichs | 'SQLSpecialColumns' |
HY099 | Nullable-Typ außerhalb des Bereichs | 'SQLSpecialColumns' |
HY100 | Eindeutigkeitsoptionstyp außerhalb des Bereichs | 'SQLStatistics' |
HY101 | Genauigkeitsoptionstyp außerhalb des Bereichs | 'SQLStatistics' |
HY103 | Ungültiger Abrufcode | SQLDataSources SQLDrivers |
HY104 | Ungültiger Genauigkeits- oder Skalierungswert | SQLBindParameter |
HY105 | Ungültiger Parametertyp | SQLBindParameter SQLExecDirect SQLExecute SQLParamData SQLSetDescField |
HY106 | Abrufen des Typs außerhalb des Bereichs | SQLExtendedFetch SQLFetchScroll |
HY107 | Zeilenwert außerhalb des Bereichs | SQLExtendedFetch SQLFetch SQLFetchScroll SQLSetPos |
HY109 | Ungültige Cursorposition | SQLExecDirect SQLExecute SQLGetData 'SQLGetStmtAttr' SQLNativeSql SQLParamData SQLSetPos |
HY110 | Ungültiger Treiberabschluss | SQLDriverConnect |
HY111 | Ungültiger Lesezeichenwert | SQLExtendedFetch SQLFetchScroll |
HYC00 | Optionales Feature nicht implementiert | SQLBindCol SQLBindParameter SQLBulkOperations SQLColAttribute SQLColumnPrivileges SQLColumns SQLDriverConnect SQLEndTran SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLForeignKeys SQLGetConnectAttr SQLGetData SQLGetEnvAttr SQLGetInfo 'SQLGetStmtAttr' SQLGetTypeInfo SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns 'SQLProcedures' SQLSetConnectAttr SQLSetEnvAttr SQLSetPos SQLSetStmtAttr 'SQLSpecialColumns' 'SQLStatistics' SQLTablePrivileges SQLTables |
HYT00 | Timeout abgelaufen | SQLBrowseConnect SQLBulkOperations SQLColumnPrivileges SQLColumns SQLConnect SQLDriverConnect SQLExecDirect SQLExecute SQLExtendedFetch SQLForeignKeys SQLGetTypeInfo SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns 'SQLProcedures' SQLSetPos 'SQLSpecialColumns' 'SQLStatistics' SQLTablePrivileges SQLTables |
HYT01 | Verbindungstimeout abgelaufen | Alle ODBC-Funktionen mit Ausnahme von: SQLDrivers SQLDataSources SQLGetEnvAttr SQLSetEnvAttr |
IM001 | Treiber unterstützt diese Funktion nicht. | Alle ODBC-Funktionen mit Ausnahme von: SQLAllocHandle SQLDataSources SQLDrivers SQLFreeHandle SQLGetFunctions |
IM002 | Datenquellenname nicht gefunden und kein Standardtreiber angegeben | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM003 | Der angegebene Treiber konnte nicht geladen werden. | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM004 | SqlAllocHandle des Treibers auf SQL_HANDLE_ENV fehlgeschlagen | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM005 | SqlAllocHandle des Treibers auf SQL_HANDLE_DBC fehlgeschlagen | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM006 | Fehler bei SQLSetConnectAttr des Treibers | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM007 | Keine Datenquelle oder Treiber angegeben; Dialog verboten | SQLDriverConnect |
IM008 | Dialogfeld fehlgeschlagen | SQLDriverConnect |
IM009 | Übersetzungs-DLL kann nicht geladen werden | SQLBrowseConnect SQLConnect SQLDriverConnect SQLSetConnectAttr |
IM010 | Datenquellenname zu lang | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM011 | Treibername zu lang | SQLBrowseConnect SQLDriverConnect |
IM012 | DRIVER-Schlüsselwortsyntaxfehler | SQLBrowseConnect SQLDriverConnect |
IM013 | Fehler in der Ablaufverfolgungsdatei | Alle ODBC-Funktionen. |
IM014 | Ungültiger Name des Datei-DSN | SQLDriverConnect |
IM015 | Beschädigte Dateidatenquelle | SQLDriverConnect |