Partage via


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.