Mappages SQLSTATE
Cette rubrique décrit les valeurs SQLSTATE pour ODBC 2.x et ODBC 3.x. Pour plus d’informations sur les valeurs ODBC 3.x SQLSTATE, consultez l’annexe A : Codes d’erreur ODBC.
Dans ODBC 3.x, les SQLSTATEs HYxxx sont retournés au lieu de S1xxx et 42Sxx SQLSTATEs sont retournés au lieu de S00XX. Cela a été fait pour s’aligner sur les normes Open Group et ISO. Dans de nombreux cas, le mappage n’est pas un-à-un, car les normes ont redéfini l’interprétation de plusieurs SQLSTATEs.
Lorsqu’une application ODBC 2.x est mise à niveau vers une application ODBC 3.x , l’application doit être modifiée pour s’attendre à ce qu’ODBC 3.x SQLSTATEs au lieu d’ODBC 2.x SQLSTATEs. Le tableau suivant répertorie les SQLSTATEs ODBC 3.x auxquels chaque SQLSTATE ODBC 2.x est mappé.
Lorsque l’attribut d’environnement SQL_ATTR_ODBC_VERSION est défini sur SQL_OV_ODBC2, le pilote publie les sqlSTATEs ODBC 2.x au lieu d’ODBC 3.x SQLSTATEs lorsque SQLGetDiagField ou SQLGetDiagRec est appelé. Un mappage spécifique peut être déterminé en notant ODBC 2.x SQLSTATE dans la colonne 1 du tableau suivant qui correspond à ODBC 3.x SQLSTATE dans la colonne 2.
ODBC 2.x SQLSTATE | ODBC 3.x SQLSTATE | Commentaires |
---|---|---|
01S03 | 01001 | |
01S04 | 01001 | |
22003 | HY019 | |
22008 | 22007 | |
22005 | 22018 | |
24000 | 07005 | |
37000 | 42000 | |
70100 | HY018 | |
S0001 | 42S01 | |
S0002 | 42S02 | |
S0011 | 42S11 | |
S0012 | 42S12 | |
S0021 | 42S21 | |
S0022 | 42S22 | |
S0023 | 42S23 | |
S1000 | HY000 | |
S1001 | HY001 | |
S1002 | 07009 | ODBC 2.x SQLSTATE S1002 est mappé à ODBC 3.x SQLSTATE 07009 si la fonction sous-jacente est SQLBindCol, SQLColAttribute, SQLExtendedFetch, SQLFetch, SQLFetchScroll ou SQLGetData. |
S1003 | HY003 | |
S1004 | HY004 | |
S1008 | HY008 | |
S1009 | HY009 | Retourné pour une utilisation non valide d’un pointeur Null. |
S1009 | HY024 | Retourné pour une valeur d’attribut non valide. |
S1009 | HY092 | Retourné pour la mise à jour ou la suppression de données par un appel à SQLSetPos, ou en ajoutant, en mettant à jour ou en supprimant des données par un appel à SQLBulkOperations, lorsque l’accès concurrentiel est en lecture seule. |
S1010 | HY007 HY010 | SQLSTATE S1010 est mappé à SQLSTATE HY007 lorsque SQLDescribeCol est appelé avant d’appeler SQLPrepare, SQLExecDirect ou une fonction de catalogue pour StatementHandle. Sinon, SQLSTATE S1010 est mappé à SQLSTATE HY010. |
S1011 | HY011 | |
S1012 | HY012 | |
S1090 | HY090 | |
S1091 | HY091 | |
S1092 | HY092 | |
S1093 | 07009 | ODBC 3.x SQLSTATE 07009 est mappé à ODBC 2.x SQLSTATE S1093 si la fonction sous-jacente est SQLBindParameter ou SQLDescribeParam. |
S1096 | HY096 | |
S1097 | HY097 | |
S1098 | HY098 | |
S1099 | HY0999 | |
S1100 | HY100 | |
S1101 | HY101 | |
S1103 | HY103 | |
S1104 | HY104 | |
S1105 | HY105 | |
S1106 | HY106 | |
S1107 | HY107 | |
S1108 | HY108 | |
S1109 | HY109 | |
S1110 | HY110 | |
S1111 | HY111 | |
S1C00 | HYC00 | |
S1T00 | HYT00 |
Remarque
ODBC 3.x SQLSTATE 07008 est mappé à ODBC 2.x SQLSTATE S1000.