Bagikan melalui


Pemetaan SQLSTATE

Topik ini membahas nilai SQLSTATE untuk ODBC 2.x dan ODBC 3.x. Untuk informasi selengkapnya tentang nilai ODBC 3.x SQLSTATE, lihat Lampiran A: Kode Kesalahan ODBC.

Dalam ODBC 3.x, HYxxx SQLSTATEs dikembalikan alih-alih S1xxx, dan 42Sxx SQLSTATEs dikembalikan alih-alih S00XX. Ini dilakukan untuk menyelaraskan dengan standar Open Group dan ISO. Dalam banyak kasus, pemetaan tidak satu-ke-satu karena standar telah mendefinisikan ulang interpretasi beberapa SQLSTATEs.

Ketika aplikasi ODBC 2.x ditingkatkan ke aplikasi ODBC 3.x , aplikasi harus diubah untuk mengharapkan ODBC 3.x SQLSTATEs alih-alih ODBC 2.x SQLSTATEs. Tabel berikut mencantumkan ODBC 3.x SQLSTATEs tempat setiap ODBC 2.x SQLSTATE dipetakan.

Ketika atribut lingkungan SQL_ATTR_ODBC_VERSION diatur ke SQL_OV_ODBC2, driver memposting ODBC 2.x SQLSTATEs alih-alih ODBC 3.x SQLSTATEs saat SQLGetDiagField atau SQLGetDiagRec dipanggil. Pemetaan tertentu dapat ditentukan dengan mencatat ODBC 2.x SQLSTATE di kolom 1 dari tabel berikut yang sesuai dengan ODBC 3.x SQLSTATE di kolom 2.

ODBC 2.x SQLSTATE ODBC 3.x SQLSTATE Komentar
01S03 01001
01S04 01001
22003 HY019
22008 22007
22.005 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 dipetakan ke ODBC 3.x SQLSTATE 07009 jika fungsi yang mendasarinya adalah SQLBindCol, SQLColAttribute, SQLExtendedFetch, SQLFetch, SQLFetchScroll, atau SQLGetData.
S1003 HY003
S1004 HY004
S1008 HY008
S1009 HY009 Dikembalikan untuk penggunaan pointer null yang tidak valid.
S1009 HY024 Dikembalikan untuk nilai atribut yang tidak valid.
S1009 HY092 Dikembalikan untuk memperbarui atau menghapus data dengan panggilan ke SQLSetPos, atau menambahkan, memperbarui, atau menghapus data dengan panggilan ke SQLBulkOperations, saat konkurensi bersifat baca-saja.
S1010 HY007 HY010 SQLSTATE S1010 dipetakan ke SQLSTATE HY007 ketika SQLDescribeCol dipanggil sebelum memanggil SQLPrepare, SQLExecDirect, atau fungsi katalog untuk StatementHandle. Jika tidak, SQLSTATE S1010 dipetakan ke SQLSTATE HY010.
S1011 HY011
S1012 HY012
S1090 HY090
S1091 HY091
S1092 HY092
S1093 07009 ODBC 3.x SQLSTATE 07009 dipetakan ke ODBC 2.x SQLSTATE S1093 jika fungsi yang mendasarinya adalah SQLBindParameter atau 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

Catatan

ODBC 3.x SQLSTATE 07008 dipetakan ke ODBC 2.x SQLSTATE S1000.