Fungsi SQLRateConnection

Kesesuaian
Versi Diperkenalkan: Kepatuhan Standar ODBC 3.81: ODBC

Ringkasan
SQLRateConnection menentukan apakah driver dapat menggunakan kembali koneksi yang ada di kumpulan koneksi.

Sintaks

  
SQLRETURN  SQLRateConnection(  
                SQLHDBC_INFO_TOKEN   hRequest,  
                SQLHDBC              hCandidateConnection,  
                BOOL                 fRequiredTransactionEnlistment,  
                TRANSID              transId,  
                DWORD *              pRating );  

Argumen

hRequest
[Input] Handel token yang mewakili permintaan koneksi aplikasi baru.

hCandidateConnection
[Input] Koneksi yang ada di kumpulan koneksi. Koneksi harus dalam keadaan terbuka.

fRequiredTransactionEnlistment
[Input] Jika TRUE, menggunakan kembali hCandidateConnection koneksi yang ada untuk permintaan koneksi baru (hRequest) memerlukan pendaftaran tambahan.

transId
[Input] Jika fRequiredTransactionEnlistment TRUE, transId mewakili transaksi DTC yang akan diikutsertakan permintaan. Jika fRequiredTransactionEnlistment FALSE, transId akan diabaikan.

PRating
[Output] Peringkat penggunaan kembali hCandidateConnection untuk hRequest. Peringkat ini akan berada di antara 0 dan 100 (inklusif).

Kembali

SQL_SUCCESS, SQL_ERROR, atau SQL_INVALID_HANDLE.

Diagnostik

Manajer Driver tidak akan memproses informasi diagnostik yang dikembalikan dari fungsi ini.

Keterangan

SQLRateConnection menghasilkan skor antara 0 dan 100 (inklusif) yang menunjukkan seberapa baik koneksi yang ada cocok dengan permintaan.

Skor Arti (saat SQL_SUCCESS dikembalikan)
0 hCandidateConnection tidak boleh digunakan kembali untuk hRequest.
Nilai apa pun antara 1 dan 98 (inklusif) Semakin tinggi skornya, semakin dekat kecocokan hCandidateConnection dengan hRequest.
99 Hanya ada ketidakcocokan dalam atribut yang tidak signifikan. Driver Manager harus menghentikan perulangan peringkat.
100 Cocok. Driver Manager harus menghentikan perulangan peringkat.
Nilai lain yang lebih besar dari 100 hCandidateConnection ditandai sebagai mati dan tidak akan digunakan kembali bahkan dalam permintaan koneksi di masa mendatang.

Driver Manager akan menandai koneksi sebagai mati jika kode pengembalian adalah apa pun selain SQL_SUCCESS (termasuk SQL_SUCCESS_WITH_INFO) atau peringkat lebih besar dari 100. Koneksi mati itu tidak akan digunakan kembali (bahkan dalam permintaan koneksi di masa mendatang) dan pada akhirnya akan kehabisan waktu setelah CPTimeout berlalu. Manajer Driver akan terus menemukan koneksi lain dari kumpulan ke laju.

Jika Manajer Driver menggunakan kembali koneksi yang skornya sangat kecil dari 100 (termasuk 99), Manajer Driver akan memanggil SQLSetConnectAttr(SQL_ATTR_DBC_INFO_TOKEN) untuk mengatur ulang koneksi kembali ke status yang diminta oleh aplikasi. Driver tidak boleh mengatur ulang koneksi dalam panggilan fungsi ini.

Jika fRequiredTransactionEnlistment TRUE, menggunakan kembali hCandidateConnection memerlukan pendaftaran tambahan (transId != NULL) atau unenstment (transId == NULL). Ini menunjukkan biaya penggunaan kembali koneksi dan apakah driver harus mendaftarkan / membatalkan daftar koneksi jika akan menggunakan kembali koneksi. Jika fRequireTransactionEnlistment FALSE, driver harus mengabaikan nilai transId.

Driver Manager menjamin bahwa handel HENV induk hRequest dan hCandidateConnection sama. Driver Manager menjamin bahwa ID kumpulan yang terkait dengan hRequest dan hCandidateConnection sama.

Aplikasi tidak boleh memanggil fungsi ini secara langsung. Driver ODBC yang mendukung pengumpulan koneksi sadar driver harus menerapkan fungsi ini.

Sertakan sqlspi.h untuk pengembangan driver ODBC.

Lihat Juga

Mengembangkan Driver ODBC
Pengumpulan Koneksi Sadar Driver
Mengembangkan Kesadaran Kumpulan Koneksi di Driver ODBC