Fungsi SQLRateConnection

Kesesuaian
Versi yang 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 oleh 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).

Mengembalikan

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 skor, semakin dekat kecocokan hCandidateConnection dengan hRequest.
99 Hanya ada ketidakcocokan dalam atribut yang tidak signifikan. Manajer Driver harus menghentikan perulangan peringkat.
100 Cocok. Manajer Driver 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.

Manajer Driver 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 akhirnya akan kehabisan waktu setelah CPTimeout berlalu. Manajer Driver akan terus menemukan koneksi lain dari kumpulan untuk menilai.

Jika Manajer Driver menggunakan kembali koneksi yang skornya benar-benar lebih 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 tidak terdaftar (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.

Manajer Driver menjamin bahwa handel HENV induk dari hRequest dan hCandidateConnection sama. Manajer Driver 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 yang Sadar Driver
Mengembangkan kesadaran Connection-Pool di Driver ODBC