Lampiran A: Kode Kesalahan ODBC
Topik ini membahas nilai SQLSTATE untuk ODBC 3.x. Untuk informasi selengkapnya tentang ODBC 3.x Nilai SQLSTATE, lihat Pemetaan SQLSTATE.
SQLGetDiagRec atau SQLGetDiagField mengembalikan nilai SQLSTATE seperti yang didefinisikan oleh Open Group Data Management: Structured Query Language (SQL), Versi 2 (Maret 1995). Nilai SQLSTATE adalah string yang berisi lima karakter. Tabel berikut mencantumkan nilai SQLSTATE yang dapat dikembalikan driver untuk SQLGetDiagRec.
Nilai string karakter yang dikembalikan untuk SQLSTATE terdiri dari nilai kelas dua karakter diikuti oleh nilai subkelas tiga karakter. Nilai kelas "01" menunjukkan peringatan dan disertai dengan kode pengembalian SQL_SUCCESS_WITH_INFO. Nilai kelas selain "01," kecuali untuk kelas "IM," menunjukkan kesalahan dan disertai dengan nilai pengembalian SQL_ERROR. Kelas "IM" khusus untuk peringatan dan kesalahan yang berasal dari implementasi ODBC itu sendiri. Nilai subkelas "000" di kelas apa pun menunjukkan bahwa tidak ada subkelas untuk SQLSTATE tersebut. Penetapan nilai kelas dan subkelas ditentukan oleh SQL-92.
Catatan
Meskipun keberhasilan eksekusi fungsi biasanya ditunjukkan oleh nilai pengembalian SQL_SUCCESS, SQLSTATE 00000 juga menunjukkan keberhasilan.
SQLSTATE | Kesalahan | Dapat dikembalikan dari |
---|---|---|
01000 | Peringatan umum | Semua fungsi ODBC kecuali: SQLError SQLGetDiagField SQLGetDiagRec |
01001 | Konflik operasi kursor | SQLExecDirect SQLExecute SQLParamData SQLSetPos |
01002 | Kesalahan pemutusan sambungan | SQLDisconnect |
01003 | Nilai NULL dihilangkan dalam fungsi yang ditetapkan | SQLExecDirect SQLExecute SQLParamData |
01004 | Data string, terpotong kanan | 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 | Hak istimewa tidak dicabut | SQLExecDirect SQLExecute SQLParamData |
01007 | Hak istimewa tidak diberikan | SQLExecDirect SQLExecute SQLParamData |
01S00 | Atribut string koneksi tidak valid | SQLBrowseConnect SQLDriverConnec |
01S01 | Kesalahan berturut-turut | SQLBulkOperations SQLExtendedFetch SQLSetPos |
01S02 | Nilai opsi berubah | SQLBrowseConnect SQLConnect SQLDriverConnect SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetConnectAttr SQLSetDescField SQLSetEnvAttr SQLSetStmtAttr |
01S06 | Mencoba mengambil sebelum tataan hasil mengembalikan set baris pertama | SQLExtendedFetch SQLFetchScroll |
01S07 | Pemotongan pecahan | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLSetPos |
01S08 | Kesalahan saat menyimpan File DSN | SQLDriverConnect |
01S09 | Kata kunci tidak valid | SQLDriverConnect |
07001 | Jumlah parameter yang salah | SQLExecDirect SQLExecute |
07002 | Bidang COUNT salah | SQLExecDirect SQLExecute SQLParamData |
07005 | Pernyataan yang disiapkan bukan spesifikasi kursor | SQLColAttribute SQLDescribeCol |
07006 | Pelanggaran atribut jenis data terbatas | SQLBindCol SQLBindParameter SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
07009 | Indeks deskriptor tidak valid | SQLBindCol SQLBindParameter SQLBulkOperations SQLColAttribute SQLDescribeCol SQLDescribeParam SQLFetch SQLFetchScroll SQLGetData SQLGetDescField SQLGetDescRec SQLParamData SQLSetDescField SQLSetDescRecSQLSetPos |
07S01 | Penggunaan parameter default tidak valid | SQLExecDirect SQLExecute SQLParamData SQLPutData |
08001 | Klien tidak dapat membuat koneksi | SQLBrowseConnect SQLConnect SQLDriverConnect |
08002 | Nama koneksi yang digunakan | SQLBrowseConnect SQLConnect SQLDriverConnect SQLSetConnectAttr |
08003 | Koneksi tidak terbuka | SQLAllocHandle SQLDisconnect SQLEndTran SQLGetConnectAttr SQLGetInfo SQLNativeSql SQLSetConnectAttr |
08004 | Server menolak koneksi | SQLBrowseConnect SQLConnect SQLDriverConnect |
08007 | Kegagalan koneksi selama transaksi | SQLEndTran |
08S01 | Kegagalan tautan komunikasi | 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 | Sisipkan daftar nilai tidak cocok dengan daftar kolom | SQLExecDirect SQLPrepare |
21S02 | Tingkat tabel turunan tidak cocok dengan daftar kolom | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetPos |
22001 | Data string, terpotong kanan | SQLBulkOperations SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLParamData SQLPutData SQLSetDescField SQLSetPos |
22002 | Variabel indikator diperlukan tetapi tidak disediakan | SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData |
22003 | Nilai numerik di luar rentang | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLGetInfo SQLParamData SQLPutData SQLSetPos |
22007 | Format tanggalwaktu tidak valid | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22008 | Meluapnya bidang tanggalwaktu | SQLBulkOperations SQLExecDirect QLParamData SQLPutData |
22012 | Pembagian dengan nol | SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLPutData |
22015 | Meluapnya bidang interval | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22018 | Nilai karakter tidak valid untuk spesifikasi cast | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22019 | Karakter escape tidak valid | SQLExecDirect SQLExecute SQLPrepare |
22025 | Urutan escape tidak valid | SQLExecDirect SQLExecute SQLPrepare |
22026 | Data string, ketidakcocokan panjang | SQLParamData |
23000 | Pelanggaran batasan integritas | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLSetPos |
24000 | Status kursor tidak valid | 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 | Status transaksi tidak valid | SQLDisconnect |
25S01 | Status transaksi | SQLEndTran |
25S02 | Transaksi masih aktif | SQLEndTran |
25S03 | Transaksi digulung balik | SQLEndTran |
28000 | Spesifikasi otorisasi tidak valid | SQLBrowseConnect SQLConnect SQLDriverConnect |
34000 | Nama kursor tidak valid | SQLExecDirect SQLPrepare SQLSetCursorName |
3C000 | Nama kursor duplikat | SQLSetCursorName |
3D000 | Nama katalog tidak valid | SQLExecDirect SQLPrepare SQLSetConnectAttr |
3F000 | Nama skema tidak valid | SQLExecDirect SQLPrepare |
40001 | Kegagalan serialisasi | SQLBulkOperations SQLColumnPrivileges SQLColumns SQLEndTran SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetTypeInfo SQLMoreResults SQLParamData SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
40002 | Pelanggaran batasan integritas | SQLEndTran |
40003 | Penyelesaian pernyataan tidak diketahui | SQLBulkOperations SQLColumnPrivileges SQLColumns SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetTypeInfo SQLMoreResults SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLParamData SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
42000 | Kesalahan sintaks atau pelanggaran akses | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetPos |
42S01 | Tabel dasar atau tampilan sudah ada | SQLExecDirect SQLPrepare |
42S02 | Tabel dasar atau tampilan tidak ditemukan | SQLExecDirect SQLPrepare |
42S11 | Indeks sudah ada | SQLExecDirect SQLPrepare |
42S12 | Indeks tidak ditemukan | SQLExecDirect SQLPrepare |
42S21 | Kolom sudah ada | SQLExecDirect SQLPrepare |
42S22 | Kolom tidak ditemukan | SQLExecDirect SQLPrepare |
44000 | DENGAN PELANGGARAN OPSI PEMERIKSAAN | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLSetPos |
HY000 | Kesalahan umum | Semua fungsi ODBC kecuali: SQLError SQLGetDiagField SQLGetDiagRec |
HY001 | Kesalahan alokasi memori | Semua fungsi ODBC kecuali: SQLError SQLGetDiagField SQLGetDiagRec |
HY003 | Jenis buffer aplikasi tidak valid | SQLBindCol SQLBindParameter SQLGetData |
HY004 | Tipe data SQL tidak valid | SQLBindParameter SQLGetTypeInfo |
HY007 | Pernyataan terkait tidak disiapkan | SQLCopyDesc SQLGetDescField SQLGetDescRec |
HY008 | Operasi dibatalkan | Semua fungsi ODBC yang dapat diproses secara asinkron: 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 | Penggunaan pointer null tidak valid | 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 | Kesalahan urutan fungsi | 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 | Atribut tidak dapat diatur sekarang | SQLBulkOperations SQLParamData QLSetPos SQLSetStmtAttr |
HY012 | Kode operasi transaksi tidak valid | SQLEndTran |
HY013 | Kesalahan manajemen memori | Semua fungsi ODBC kecuali: SQLGetDiagField SQLGetDiagRec |
HY014 | Batas jumlah handel terlampaui | SQLAllocHandle |
HY015 | Tidak ada nama kursor yang tersedia | SQLGetCursorName |
HY016 | Tidak dapat mengubah deskriptor baris implementasi | SQLCopyDesc SQLSetDescField SQLSetDescRec |
HY017 | Penggunaan handel deskriptor yang dialokasikan secara otomatis tidak valid | SQLFreeHandle SQLSetStmtAttr |
HY018 | Permintaan pembatalan yang ditolak server | SQLCancel |
HY019 | Data non-karakter dan non-biner yang dikirim dalam potongan-potongan | SQLPutData |
HY020 | Mencoba menggabungkan nilai null | SQLPutData |
HY021 | Informasi deskriptor yang tidak konsisten | SQLBindParameter SQLCopyDesc SQLGetDescField SQLSetDescField SQLSetDescRec |
HY024 | Nilai atribut tidak valid | SQLSetConnectAttr SQLSetEnvAttr SQLSetStmtAttr |
HY090 | String atau panjang buffer tidak valid | 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 | Pengidentifikasi bidang deskriptor tidak valid | SQLColAttribute SQLGetDescField SQLSetDescField |
HY092 | Pengidentifikasi atribut/opsi tidak valid | SQLAllocHandle QLBulkOperations SQLCopyDesc SQLDriverConnect SQLEndTran SQLFreeStmt SQLGetConnectAttr SQLGetEnvAttr QLParamData SQLSetConnectAttr SQLSetDescField SQLSetEnvAttr SQLSetPos SQLSetStmtAttr |
HY095 | Tipe fungsi di luar rentang | SQLGetFunctions |
HY096 | Tipe informasi tidak valid | SQLGetInfo |
HY097 | Tipe kolom di luar rentang | SQLSpecialColumns |
HY098 | Jenis cakupan di luar rentang | SQLSpecialColumns |
HY099 | Tipe nullable di luar rentang | SQLSpecialColumns |
HY100 | Jenis opsi keunikan di luar rentang | SQLStatistics |
HY101 | Jenis opsi akurasi di luar rentang | SQLStatistics |
HY103 | Kode pengambilan tidak valid | SQLDataSources SQLDrivers |
HY104 | Presisi atau nilai skala tidak valid | SQLBindParameter |
HY105 | Jenis parameter tidak valid | SQLBindParameter SQLExecDirect SQLExecute SQLParamData SQLSetDescField |
HY106 | Ambil jenis di luar rentang | SQLExtendedFetch SQLFetchScroll |
HY107 | Nilai baris di luar rentang | SQLExtendedFetch SQLFetch SQLFetchScroll SQLSetPos |
HY109 | Posisi kursor tidak valid | SQLExecDirect SQLExecute SQLGetData SQLGetStmtAttr SQLNativeSql SQLParamData SQLSetPos |
HY110 | Penyelesaian driver tidak valid | SQLDriverConnect |
HY111 | Nilai marka buku tidak valid | SQLExtendedFetch SQLFetchScroll |
HYC00 | Fitur opsional tidak diimplementasikan | 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 | Waktu habis kedaluwarsa | SQLBrowseConnect SQLBulkOperations SQLColumnPrivileges SQLColumns SQLConnect SQLDriverConnect SQLExecDirect SQLExecute SQLExtendedFetch SQLForeignKeys SQLGetTypeInfo SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HYT01 | Kesalahan waktu habis koneksi kedaluwarsa | Semua fungsi ODBC kecuali: SQLDrivers SQLDataSources SQLGetEnvAttr SQLSetEnvAttr |
IM001 | Driver tidak mendukung fungsi ini | Semua fungsi ODBC kecuali: SQLAllocHandle SQLDataSources SQLDrivers SQLFreeHandle SQLGetFunctions |
IM002 | Nama sumber data tidak ditemukan dan tidak ada driver default yang ditentukan | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM003 | Pengandar yang ditentukan tidak dapat dimuat | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM004 | SQLAllocHandle driver pada SQL_HANDLE_ENV gagal | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM005 | SQLAllocHandle driver pada SQL_HANDLE_DBC gagal | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM006 | SQLSetConnectAttr driver gagal | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM007 | Tidak ada sumber data atau driver yang ditentukan; dialog dilarang | SQLDriverConnect |
IM008 | Dialog gagal | SQLDriverConnect |
IM009 | Tidak dapat memuat DLL terjemahan | SQLBrowseConnect SQLConnect SQLDriverConnect SQLSetConnectAttr |
IM010 | Nama sumber data terlalu panjang | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM011 | Nama driver terlalu panjang | SQLBrowseConnect SQLDriverConnect |
IM012 | Kesalahan sintaks kata kunci DRIVER | SQLBrowseConnect SQLDriverConnect |
IM013 | Lacak kesalahan file | Semua fungsi ODBC. |
IM014 | Nama DSN File tidak valid | SQLDriverConnect |
IM015 | Sumber data file rusak | SQLDriverConnect |