Dela via


SQLSTATE-mappningar

I det här avsnittet beskrivs SQLSTATE-värden för ODBC 2.x och ODBC 3.x. Mer information om ODBC 3.x SQLSTATE-värden finns i Bilaga A: ODBC-felkoder.

I ODBC 3.x returneras HYxxx SQLSTATEs i stället för S1xxx och 42Sxx SQLSTATEs returneras i stället för S00XX. Detta gjordes för att överensstämma med Open Group- och ISO-standarder. I många fall är mappningen inte en-till-en eftersom standarderna har omdefinierat tolkningen av flera SQLSTATE:er.

När ett ODBC 2.x-program uppgraderas till ett ODBC 3.x-program måste programmet ändras för att förvänta sig ODBC 3.x SQLSTATEs i stället för ODBC 2.x SQLSTATEs. I följande tabell visas de ODBC 3.x SQLSTATEs som varje ODBC 2.x SQLSTATE mappas till.

När SQL_ATTR_ODBC_VERSION miljöattribut är inställt på SQL_OV_ODBC2 publicerar drivrutinen ODBC 2.x SQLSTATEs i stället för ODBC 3.x SQLSTATEs när SQLGetDiagField eller SQLGetDiagRec anropas. En specifik mappning kan fastställas genom att notera ODBC 2.x SQLSTATE i kolumn 1 i följande tabell som motsvarar ODBC 3.x SQLSTATE i kolumn 2.

ODBC 2.x SQLSTATE ODBC 3.x SQLSTATE Comments
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 mappas till ODBC 3.x SQLSTATE 07009 om den underliggande funktionen är SQLBindCol, SQLColAttribute, SQLExtendedFetch, SQLFetch, SQLFetchScroll eller SQLGetData.
S1003 HY003
S1004 HY004
S1008 HY008
S1009 HY009 Returnerades på grund av en ogiltig användning av en null-pekare.
S1009 HY024 Returneras för ett ogiltigt attributvärde.
S1009 HY092 Returneras för att uppdatera eller ta bort data med ett anrop till SQLSetPos, eller för att lägga till, uppdatera eller ta bort data med ett anrop till SQLBulkOperations, när samtidighet är inställd på skrivskydd.
S1010 HY007 HY010 SQLSTATE S1010 mappas till SQLSTATE HY007 när SQLDescribeCol anropas innan DU anropar SQLPrepare, SQLExecDirect eller en katalogfunktion för StatementHandle. Annars mappas SQLSTATE S1010 till SQLSTATE HY010.
S1011 HY011
S1012 HY012
S1090 HY090
S1091 HY091
S1092 HY092
S1093 07009 ODBC 3.x SQLSTATE 07009 mappas till ODBC 2.x SQLSTATE S1093 om den underliggande funktionen är SQLBindParameter eller SQLDescribeParam.
S1096 HY096
S1097 HY097
S1098 HY098
S1099 HY099
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

Anmärkning

ODBC 3.x SQLSTATE 07008 mappas till ODBC 2.x SQLSTATE S1000.