Annexe A : Codes d’erreur ODBC
Cette rubrique décrit les valeurs SQLSTATE pour ODBC 3. x. Pour plus d’informations sur ODBC 3. x valeurs SQLSTATE, consultez Mappages SQLSTATE.
SQLGetDiagRec ou SQLGetDiagField retourne les valeurs SQLSTATE telles que définies par Open Group Gestion des données : langage SQL (SQL), version 2 (mars 1995). Les valeurs SQLSTATE sont des chaînes qui contiennent cinq caractères. Le tableau suivant répertorie les valeurs SQLSTATE qu’un pilote peut retourner pour SQLGetDiagRec.
La valeur de chaîne de caractères retournée pour un SQLSTATE se compose d’une valeur de classe de deux caractères suivie d’une valeur de sous-classe de trois caractères. Une valeur de classe « 01 » indique un avertissement et est accompagnée d’un code de retour de SQL_SUCCESS_WITH_INFO. Les valeurs de classe autres que « 01 », à l’exception de la classe « IM », indiquent une erreur et sont accompagnées d’une valeur de retour de SQL_ERROR. La classe « IM » est spécifique aux avertissements et aux erreurs qui dérivent de l’implémentation d’ODBC elle-même. La valeur de sous-classe « 000 » dans n’importe quelle classe indique qu’il n’existe aucune sous-classe pour cette classe SQLSTATE. L’attribution des valeurs de classe et de sous-classe est définie par SQL-92.
Notes
Bien que l’exécution réussie d’une fonction soit normalement indiquée par une valeur de retour de SQL_SUCCESS, la valeur SQLSTATE 00000 indique également la réussite.
SQLSTATE | Error | Peut être retourné à partir de |
---|---|---|
01000 | Avertissement général | Toutes les fonctions ODBC, sauf : Sqlerror SQLGetDiagField SQLGetDiagRec |
01001 | Conflit d’opération de curseur | SQLExecDirect SQLExecute SQLParamData SQLSetPos |
01002 | Erreur de déconnexion | SQLDisconnect |
01003 | Valeur NULL supprimée dans la fonction set | SQLExecDirect SQLExecute SQLParamData |
01004 | Données de chaîne, tronquées à droite | 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 | Privilège non révoqué | SQLExecDirect SQLExecute SQLParamData |
01007 | Privilège non accordé | SQLExecDirect SQLExecute SQLParamData |
01S00 | Attribut de chaîne de connexion non valide | SQLBrowseConnect SQLDriverConnec |
01S01 | Erreur dans la ligne | SQLBulkOperations SQLExtendedFetch SQLSetPos |
01S02 | Valeur de l’option modifiée | SQLBrowseConnect SQLConnect SQLDriverConnect SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetConnectAttr SQLSetDescField SQLSetEnvAttr SQLSetStmtAttr |
01S06 | Tentative d’extraction avant que le jeu de résultats ne retourne le premier ensemble de lignes | SQLExtendedFetch SQLFetchScroll |
01S07 | Troncation fractionnaire | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLSetPos |
01S08 | Erreur lors de l’enregistrement du DSN de fichier | SQLDriverConnect |
01S09 | Mot clé non valide | SQLDriverConnect |
07001 | Nombre incorrect de paramètres | SQLExecDirect SQLExecute |
07002 | Champ COUNT incorrect | SQLExecDirect SQLExecute SQLParamData |
07005 | Instruction préparée et non spécification de curseur | SQLColAttribute SQLDescribeCol |
07006 | Violation d’attribut de type de données restreinte | SQLBindCol SQLBindParameter SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
07009 | Index de descripteur non valide | SQLBindCol SQLBindParameter SQLBulkOperations SQLColAttribute SQLDescribeCol SQLDescribeParam SQLFetch SQLFetchScroll SQLGetData SQLGetDescField SQLGetDescRec SQLParamData SQLSetDescField SQLSetDescRecSQLSetPos |
07S01 | Utilisation non valide du paramètre par défaut | SQLExecDirect SQLExecute SQLParamData SQLPutData |
08001 | Le client ne peut pas établir la connexion | SQLBrowseConnect SQLConnect SQLDriverConnect |
08002 | Nom de connexion utilisé | SQLBrowseConnect SQLConnect SQLDriverConnect SQLSetConnectAttr |
08003 | Connexion non ouverte | SQLAllocHandle SQLDisconnect SQLEndTran SQLGetConnectAttr SQLGetInfo SQLNativeSql SQLSetConnectAttr |
08004 | Le serveur a rejeté la connexion | SQLBrowseConnect SQLConnect SQLDriverConnect |
08007 | Échec de connexion pendant la transaction | SQLEndTran |
08S01 | Échec de la liaison de communication | 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 | Insérer une liste de valeurs ne correspond pas à la liste de colonnes | SQLExecDirect SQLPrepare |
21S02 | Le degré de table dérivée ne correspond pas à la liste de colonnes | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetPos |
22001 | Données de chaîne, tronquées à droite | SQLBulkOperations SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLParamData SQLPutData SQLSetDescField SQLSetPos |
22002 | Variable d’indicateur requise mais non fournie | SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData |
22003 | Valeur numérique hors plage | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLGetInfo SQLParamData SQLPutData SQLSetPos |
22007 | Format datetime non valide | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22008 | Dépassement de champ Datetime | SQLBulkOperations SQLExecDirect QLParamData SQLPutData |
22012 | Division par zéro | SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLPutData |
22015 | Dépassement de champ d’intervalle | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22018 | Valeur de caractère non valide pour la spécification de cast | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22019 | Caractère d’échappement non valide | SQLExecDirect SQLExecute SQLPrepare |
22025 | Séquence d’échappement non valide | SQLExecDirect SQLExecute SQLPrepare |
22026 | Chaîne de données ou longueur non correspondante | SQLParamData |
23000 | Violation de contrainte d’intégrité | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLSetPos |
24 000 | État de curseur non valide | 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 | État de transaction non valide | SQLDisconnect |
25S01 | État des transactions | SQLEndTran |
25S02 | La transaction est toujours active | SQLEndTran |
25S03 | La transaction est restaurée | SQLEndTran |
28000 | Spécification d’autorisation non valide | SQLBrowseConnect SQLConnect SQLDriverConnect |
34000 | Nom de curseur non valide | SQLExecDirect SQLPrepare SQLSetCursorName |
3C000 | Nom du curseur en double | SQLSetCursorName |
3D000 | Nom de catalogue non valide | SQLExecDirect SQLPrepare SQLSetConnectAttr |
3F000 | Nom de schéma non valide | SQLExecDirect SQLPrepare |
40001 | Échec de sérialisation | SQLBulkOperations SQLColumnPrivileges SQLColumns SQLEndTran SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetTypeInfo SQLMoreResults SQLParamData SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
40002 | Violation de contrainte d’intégrité | SQLEndTran |
40003 | Saisie semi-automatique d’instruction inconnue | SQLBulkOperations SQLColumnPrivileges SQLColumns SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetTypeInfo SQLMoreResults SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLParamData SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
42000 | Erreur de syntaxe ou violation d’accès | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetPos |
42S01 | La table de base ou la vue existe déjà | SQLExecDirect SQLPrepare |
42S02 | Table de base ou vue introuvable | SQLExecDirect SQLPrepare |
42S11 | L’index existe déjà | SQLExecDirect SQLPrepare |
42S12 | Index introuvable | SQLExecDirect SQLPrepare |
42S21 | La colonne existe déjà | SQLExecDirect SQLPrepare |
42S22 | Colonne introuvable | SQLExecDirect SQLPrepare |
44000 | Violation de WITH CHECK OPTION | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLSetPos |
HY000 | Erreur générale | Toutes les fonctions ODBC, sauf : Sqlerror SQLGetDiagField SQLGetDiagRec |
HY001 | Erreur d’allocation de mémoire | Toutes les fonctions ODBC, sauf : Sqlerror SQLGetDiagField SQLGetDiagRec |
HY003 | Type de mémoire tampon d’application non valide | SQLBindCol SQLBindParameter SQLGetData |
HY004 | Type de données SQL non valide | SQLBindParameter SQLGetTypeInfo |
HY007 | L’instruction associée n’est pas préparée | SQLCopyDesc SQLGetDescField SQLGetDescRec |
HY008 | Opération annulée | Toutes les fonctions ODBC qui peuvent être traitées de manière asynchrone : 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 | Utilisation non valide du pointeur Null | 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 | Erreur de séquence de fonction | 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 | Impossible de définir l’attribut maintenant | SQLBulkOperations SQLParamData QLSetPos SQLSetStmtAttr |
HY012 | Code d’opération de transaction non valide | SQLEndTran |
HY013 | Erreur de gestion de la mémoire | Toutes les fonctions ODBC, sauf : SQLGetDiagField SQLGetDiagRec |
HY014 | Limite du nombre de handles dépassés | SQLAllocHandle |
HY015 | Aucun nom de curseur disponible | SQLGetCursorName |
HY016 | Impossible de modifier un descripteur de ligne d’implémentation | SQLCopyDesc SQLSetDescField SQLSetDescRec |
HY017 | Utilisation non valide d’un handle de descripteur alloué automatiquement | SQLFreeHandle SQLSetStmtAttr |
HY018 | Demande d’annulation refusée par le serveur | SQLCancel |
HY019 | Données non caractères et non binaires envoyées en morceaux | SQLPutData |
HY020 | Tentative de concaténer une valeur Null | SQLPutData |
HY021 | Informations de descripteur incohérentes | SQLBindParameter SQLCopyDesc SQLGetDescField SQLSetDescField SQLSetDescRec |
HY024 | Valeur d’attribut non valide | SQLSetConnectAttr SQLSetEnvAttr SQLSetStmtAttr |
HY090 | Chaîne ou longueur de mémoire tampon non valide | 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 | Identificateur de champ de descripteur non valide | SQLColAttribute SQLGetDescField SQLSetDescField |
HY092 | Identificateur d’attribut/d’option non valide | SQLAllocHandle QLBulkOperations SQLCopyDesc SQLDriverConnect SQLEndTran SQLFreeStmt SQLGetConnectAttr SQLGetEnvAttr QLParamData SQLSetConnectAttr SQLSetDescField SQLSetEnvAttr SQLSetPos SQLSetStmtAttr |
HY095 | Type de fonction hors plage | SQLGetFunctions |
HY096 | Type d’informations non valide | SQLGetInfo |
HY097 | Type de colonne hors plage | SQLSpecialColumns |
HY098 | Type d’étendue hors plage | SQLSpecialColumns |
HY099 | Type Nullable hors plage | SQLSpecialColumns |
HY100 | Type d’option d’unicité hors plage | SQLStatistics |
HY101 | Type d’option de précision hors plage | SQLStatistics |
HY103 | Code de récupération non valide | SQLDataSources SQLDrivers |
HY104 | Précision ou valeur d’échelle non valide | SQLBindParameter |
HY105 | Type de paramètre non valide | SQLBindParameter SQLExecDirect SQLExecute SQLParamData SQLSetDescField |
HY106 | Type d’extraction hors plage | SQLExtendedFetch SQLFetchScroll |
HY107 | Valeur de ligne hors plage | SQLExtendedFetch SQLFetch SQLFetchScroll SQLSetPos |
HY109 | Position du curseur non valide | SQLExecDirect SQLExecute SQLGetData SQLGetStmtAttr SQLNativeSql SQLParamData SQLSetPos |
HY110 | Complétion du pilote non valide | SQLDriverConnect |
HY111 | Valeur de signet non valide | SQLExtendedFetch SQLFetchScroll |
HYC00 | Fonctionnalité facultative non implémentée | 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 | Délai expiré | SQLBrowseConnect SQLBulkOperations SQLColumnPrivileges SQLColumns SQLConnect SQLDriverConnect SQLExecDirect SQLExecute SQLExtendedFetch SQLForeignKeys SQLGetTypeInfo SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HYT01 | Délai d’attente de la connexion expiré | Toutes les fonctions ODBC, sauf : SQLDrivers SQLDataSources SQLGetEnvAttr SQLSetEnvAttr |
IM001 | Le pilote ne prend pas en charge cette fonction | Toutes les fonctions ODBC, sauf : SQLAllocHandle SQLDataSources SQLDrivers SQLFreeHandle SQLGetFunctions |
IM002 | Nom de la source de données introuvable et aucun pilote par défaut spécifié | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM003 | Impossible de charger le pilote spécifié | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM004 | Échec du SQLAllocHandle du pilote sur SQL_HANDLE_ENV | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM005 | Échec du SQLAllocHandle du pilote sur SQL_HANDLE_DBC | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM006 | Échec de SQLSetConnectAttr du pilote | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM007 | Aucune source de données ou pilote spécifié ; boîte de dialogue interdite | SQLDriverConnect |
IM008 | Échec de la boîte de dialogue | SQLDriverConnect |
IM009 | Impossible de charger la DLL de traduction | SQLBrowseConnect SQLConnect SQLDriverConnect SQLSetConnectAttr |
IM010 | Nom de la source de données trop long | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM011 | Nom du pilote trop long | SQLBrowseConnect SQLDriverConnect |
IM012 | Erreur de syntaxe du mot clé DRIVER | SQLBrowseConnect SQLDriverConnect |
IM013 | Erreur de fichier de trace | Toutes les fonctions ODBC. |
IM014 | Nom de fichier DSN non valide | SQLDriverConnect |
IM015 | Source de données de fichier endommagée | SQLDriverConnect |