Transisi Sambungan
Koneksi ODBC memiliki status berikut.
Provinsi | Deskripsi |
---|---|
C0 | Lingkungan tidak dialokasikan, koneksi tidak dialokasikan |
C1 | Lingkungan yang dialokasikan, koneksi tidak dialokasikan |
C2 | Lingkungan yang dialokasikan, koneksi yang dialokasikan |
C3 | Fungsi koneksi membutuhkan data |
C4 | Koneksi tersambung |
C5 | Koneksi tersambung, pernyataan yang dialokasikan |
C6 | Koneksi tersambung, transaksi sedang berlangsung. Dimungkinkan bagi koneksi untuk berada dalam status C6 tanpa pernyataan yang dialokasikan pada koneksi. Misalnya, koneksi dalam mode penerapan manual dan dalam status C4. Jika pernyataan dialokasikan, dijalankan (memulai transaksi), dan kemudian dibeberkan, transaksi tetap aktif tetapi tidak ada pernyataan pada koneksi. |
Tabel berikut menunjukkan bagaimana setiap fungsi ODBC memengaruhi status koneksi.
SQLAllocHandle
C0 Tidak ada Env. |
C1 Tidak Dialokasikan | C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
C1[1] | --[5] | --[5] | --[5] | --[5] | --[5] | --[5] |
(IH) [2] | C2 | --[5] | --[5] | --[5] | --[5] | --[5] |
(IH) [3] | (IH) | (08003) | (08003) | C5 | --[5] | --[5] |
(IH) [4] | (IH) | (08003) | (08003) | --[5] | --[5] | --[5] |
[1] Baris ini menunjukkan transisi ketika HandleType SQL_HANDLE_ENV.
[2] Baris ini menunjukkan transisi ketika HandleType SQL_HANDLE_DBC.
[3] Baris ini menunjukkan transisi ketika HandleType SQL_HANDLE_STMT.
[4] Baris ini menunjukkan transisi ketika HandleType SQL_HANDLE_DESC.
[5] Memanggil SQLAllocHandle dengan OutputHandlePtr menunjuk ke handel yang valid menimpa yang menangani tanpa memperhatikan konten sebelumnya dari handel itu, dan dapat menyebabkan masalah bagi driver ODBC. Ini adalah pemrograman aplikasi ODBC yang salah untuk memanggil SQLAllocHandle dua kali dengan variabel aplikasi yang sama yang ditentukan untuk *OutputHandlePtr tanpa memanggil SQLFreeHandle untuk membebaskan handel sebelum merealokasinya. Menimpa handel ODBC dengan cara seperti itu dapat menyebabkan perilaku atau kesalahan yang tidak konsisten pada bagian driver ODBC.
SQLBrowseConnect
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) | (IH) | C3 [d] C4 [s] | -- [d] C2 [e] C4 [s] | (08002) | (08002) | (08002) |
SQLCloseCursor
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) | (IH) | (IH) | (IH) | (IH) | -- | --[1] C5[2] |
[1] Koneksi berada dalam mode penerapan manual.
[2] Koneksi berada dalam mode penerapan otomatis.
SQLColumnPrivileges, SQLColumns, SQLForeignKeys, SQLGetTypeInfo, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges, dan SQLTables
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) | (IH) | (IH) | (IH) | (IH) | --[1] C6[2] | -- |
[1] Koneksi berada dalam mode penerapan otomatis, atau sumber data tidak memulai transaksi.
[2] Koneksi dalam mode penerapan manual, dan sumber data memulai transaksi.
SQLConnect
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) | (IH) | C4 | (08002) | (08002) | (08002) | (08002) |
SQLCopyDesc, SQLGetDescField, SQLGetDescRec, SQLSetDescField, dan SQLSetDescRec
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) | (IH) | (IH) | (IH) | --[1] | -- | -- |
[1] Dalam keadaan ini, satu-satunya deskriptor yang tersedia untuk aplikasi adalah deskriptor yang dialokasikan secara eksplisit.
SQLDataSources dan SQLDrivers
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) | -- | -- | -- | -- | -- | -- |
SQLDisconnect
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) | (IH) | (08003) | C2 | C2 | C2 | 25000 |
SQLDriverConnect
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) | (IH) | C4 s -- n[f] | (08002) | (08002) | (08002) | (08002) |
SQLEndTran
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) [1] | --[3] | --[3] | --[3] | -- | -- | --[4] atau ([5], [6], dan [8]) C4[5] dan [7] C5[5], [6], dan [9] |
(IH) [2] | (IH) | (08003) | (08003) | -- | -- | C5 |
[1] Baris ini menunjukkan transisi ketika HandleType SQL_HANDLE_ENV.
[2] Baris ini menunjukkan transisi ketika HandleType SQL_HANDLE_DBC.
[3] Karena koneksi tidak dalam keadaan terhubung, koneksi tidak terpengaruh oleh transaksi.
[4] Penerapan atau pembatalan gagal pada koneksi. Fungsi mengembalikan SQL_ERROR dalam kasus ini.
[5] Penerapan atau pembatalan berhasil pada koneksi. Fungsi mengembalikan SQL_ERROR jika penerapan atau pembatalan gagal pada koneksi lain, atau fungsi mengembalikan SQL_SUCCESS jika penerapan atau pembatalan berhasil pada semua koneksi.
[6] Setidaknya ada satu pernyataan yang dialokasikan pada koneksi.
[7] Tidak ada pernyataan yang dialokasikan pada koneksi.
[8] Koneksi memiliki setidaknya satu pernyataan di mana ada kursor terbuka, dan sumber data mempertahankan kursor ketika transaksi dilakukan atau digulung balik, mana pun yang berlaku (tergantung pada apakah CompletionType SQL_COMMIT atau SQL_ROLLBACK). Untuk informasi selengkapnya, lihat atribut SQL_CURSOR_COMMIT_BEHAVIOR dan SQL_CURSOR_ROLLBACK_BEHAVIOR di SQLGetInfo.
[9] Jika koneksi memiliki pernyataan yang ada kursor terbuka, kursor tidak dipertahankan ketika transaksi dilakukan atau digulung balik.
SQLExecDirect dan SQLExecute
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) | (IH) | (IH) | (IH) | (IH) | --[1] C6[2] C6[3] | -- |
[1] Koneksi berada dalam mode penerapan otomatis, dan pernyataan yang dijalankan bukan spesifikasi kursor (seperti pernyataan SELECT); atau koneksi dalam mode penerapan manual, dan pernyataan yang dijalankan tidak memulai transaksi.
[2] Koneksi berada dalam mode penerapan otomatis, dan pernyataan yang dijalankan adalah spesifikasi kursor (seperti pernyataan SELECT).
[3] Koneksi berada dalam mode penerapan manual, dan sumber data memulai transaksi.
SQLFreeHandle
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) [1] | C0 | (HY010) | (HY010) | (HY010) | (HY010) | (HY010) |
(IH) [2] | (IH) | (C1) | (HY010) | (HY010) | (HY010) | (HY010) |
(IH) [3] | (IH) | (IH) | (IH) | (IH) | C4[5] --[6] | --[7] C4[5] dan [8] C5[6] dan [8] |
(IH) [4] | (IH) | (IH) | (IH) | -- | -- | -- |
[1] Baris ini menunjukkan transisi ketika HandleType SQL_HANDLE_ENV.
[2] Baris ini menunjukkan transisi ketika HandleType SQL_HANDLE_DBC.
[3] Baris ini menunjukkan transisi ketika HandleType SQL_HANDLE_STMT.
[4] Baris ini menunjukkan transisi ketika HandleType SQL_HANDLE_DESC.
[5] Hanya ada satu pernyataan yang dialokasikan pada koneksi.
[6] Ada beberapa pernyataan yang dialokasikan pada koneksi.
[7] Koneksi berada dalam mode penerapan manual.
[8] Koneksi berada dalam mode penerapan otomatis.
SQLFreeStmt
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) [1] | (IH) | (IH) | (IH) | (IH) | -- | C5[3] --[4] |
(IH) [2] | (IH) | (IH) | (IH) | (IH) | -- | -- |
[1] Baris ini menunjukkan transaksi ketika argumen Opsi SQL_CLOSE.
[2] Baris ini menunjukkan transaksi ketika argumen Opsi SQL_UNBIND atau SQL_RESET_PARAMS.
[3] Koneksi berada dalam mode penerapan otomatis, dan tidak ada kursor yang terbuka pada pernyataan apa pun kecuali yang satu ini.
[4] Koneksi berada dalam mode penerapan manual, atau dalam mode penerapan otomatis dan kursor terbuka pada setidaknya satu pernyataan lainnya.
SQLGetConnectAttr
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
IH | IH | --[1] 08003[2] | HY010 | -- | -- | -- |
[1] Argumen Atribut SQL_ATTR_ACCESS_MODE, SQL_ATTR_AUTOCOMMIT, SQL_ATTR_LOGIN_TIMEOUT, SQL_ATTR_ODBC_CURSORS, SQL_ATTR_TRACE, atau SQL_ATTR_TRACEFILE, atau nilai telah ditetapkan untuk atribut koneksi.
[2] Argumen Atribut tidak SQL_ATTR_ACCESS_MODE, SQL_ATTR_AUTOCOMMIT, SQL_ATTR_LOGIN_TIMEOUT, SQL_ATTR_ODBC_CURSORS, SQL_ATTR_TRACE, atau SQL_ATTR_TRACEFILE, dan nilai belum ditetapkan untuk atribut koneksi.
SQLGetDiagField dan SQLGetDiagRec
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) [1] | -- | -- | -- | -- | -- | -- |
(IH) [2] | (IH) | -- | -- | -- | -- | -- |
(IH) [3] | (IH) | (IH) | (IH) | (IH) | -- | -- |
(IH) [4] | (IH) | (IH) | (IH) | -- | -- | -- |
[1] Baris ini menunjukkan transisi ketika HandleType SQL_HANDLE_ENV.
[2] Baris ini menunjukkan transisi ketika HandleType SQL_HANDLE_DBC.
[3] Baris ini menunjukkan transisi ketika HandleType SQL_HANDLE_STMT.
[4] Baris ini menunjukkan transisi ketika HandleType SQL_HANDLE_DESC.
SQLGetEnvAttr
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
IH | -- | -- | -- | -- | -- | -- |
SQLGetFunctions
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
IH | IH | HY010 | HY010 | -- | -- | -- |
SQLGetInfo
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
IH | IH | --[1] 08003[2] | 08003 | -- | -- | -- |
[1] Argumen InfoType SQL_ODBC_VER.
[2] Argumen InfoType tidak SQL_ODBC_VER.
SQLMoreResults
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) | (IH) | (IH) | (IH) | (IH) | --[1] C6[2] | --[3] C5[1] |
[1] Koneksi berada dalam mode penerapan otomatis, dan panggilan ke SQLMoreResults belum menginisialisasi pemrosesan serangkaian hasil spesifikasi kursor.
[2] Koneksi berada dalam mode penerapan otomatis, dan panggilan ke SQLMoreResults telah menginisialisasi pemrosesan serangkaian hasil spesifikasi kursor.
[3] Koneksi berada dalam mode penerapan manual.
SQLNativeSql
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) | (IH) | (08003) | (08003) | -- | -- | -- |
SQLPrepare
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) | (IH) | (IH) | (IH) | (IH) | --[1] C6[2] | -- |
[1] Koneksi berada dalam mode penerapan otomatis, atau sumber data tidak memulai transaksi.
[2] Koneksi dalam mode penerapan manual, dan sumber data memulai transaksi.
SQLSetConnectAttr
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
IH | IH | --[1] 08003[2] | HY010 | --[3] 08002[4] HY011[5] | --[3] 08002[4] HY011[5] | --[3] dan [6] C5[8] 08002[4] HY011[5] atau [7] |
[1] Argumen Atribut tidak SQL_ATTR_TRANSLATE_LIB atau SQL_ATTR_TRANSLATE_OPTION.
[2] Argumen Atribut SQL_ATTR_TRANSLATE_LIB atau SQL_ATTR_TRANSLATE_OPTION.
[3] Argumen Atribut tidak SQL_ATTR_ODBC_CURSORS atau SQL_ATTR_PACKET_SIZE.
[4] Argumen Atribut SQL_ATTR_ODBC_CURSORS.
[5] Argumen Atribut SQL_ATTR_PACKET_SIZE.
[6] Argumen Atribut tidak SQL_ATTR_AUTOCOMMIT, atau argumen Atribut SQL_ATTR_AUTOCOMMIT dan mengatur atribut ini tidak melakukan transaksi.
[7] Argumen Atribut SQL_ATTR_TXN_ISOLATION.
[8] Argumen Atribut SQL_ATTR_AUTOCOMMIT, dan mengatur atribut ini melakukan transaksi.
SQLSetEnvAttr
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) | -- | -- | (HY010) | -- | -- | -- |
Semua Fungsi ODBC Lainnya
C0 Tidak ada Env. |
C1 Tidak dialokasikan |
C2 Dialokasikan |
C3 Perlu Data |
C4 Tersambung |
C5 Pernyataan |
C6 Transaksi |
---|---|---|---|---|---|---|
(IH) | (IH) | (IH) | (IH) | (IH) | -- | -- |