Bagikan melalui


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) -- --