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