SQLRateConnection İşlevi

Uygunluk
Tanıtılan Sürüm: ODBC 3.81 Standartlara Uyum: ODBC

Summary
SQLRateConnection , bir sürücünün bağlantı havuzundaki mevcut bağlantıyı yeniden kullanıp kullanamayacağını belirler.

Syntax

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

Arguments

hRequest
[Giriş] Yeni uygulama bağlantı talebini temsil eden bir token tutucu.

hCandidateConnection
[Giriş] Bağlantı havuzundaki mevcut bağlantı. Bağlantı açık durumda olmalı.

fRequiredTransactionEnlistment
[Giriş] DOĞRUYSA, mevcut bağlantının hCandidateConnection'ını yeni bağlantı talebi (hRequest) için tekrar kullanmak ek bir askerlik gerektirir.

transId
[Giriş] Eğer fRequiredTransactionEnlistment TRUE'ysa, transId isteğin dahil edileceği DTC işlemini temsil eder. fRequiredTransactionEnlistment SAHTE ise, transId göz ardı edilir.

pRating
[Çıkış] hCandidateConnection'ınhRequest için yeniden kullanım puanı. Bu puan 0 ile 100 arasında olacak (dahil).

İadeler

SQL_SUCCESS, SQL_ERROR ya da SQL_INVALID_HANDLE.

Diagnostics

Sürücü Yöneticisi bu fonksiyondan gelen tanı bilgilerini işlemez.

Remarks

SQLRateConnection , mevcut bağlantının talekle ne kadar uyumlu olduğunu gösteren 0 ile 100 (dahil) arasında bir puan üretir.

Puan Anlamı (SQL_SUCCESS geri döndüğünde)
0 hCandidateConnection , hRequest için yeniden kullanılmamalıdır.
1 ile 98 arasındaki herhangi bir değer (dahil) Puan ne kadar yüksekse, hCandidateConnection ile hRequest o kadar yakın eşleşir.
99 Sadece önemsiz niteliklerde uyumsuzluklar vardır. Sürücü Müdürü derecelendirme döngüsünü durdurmalı.
100 Mükemmel eşleşme. Sürücü Müdürü derecelendirme döngüsünü durdurmalı.
100'den büyük herhangi bir değer varsa hCandidateConnection ölü olarak işaretlenmiştir ve gelecekteki bağlantı talebinde bile tekrar kullanılmayacak.

Sürücü Yöneticisi, dönüş kodu SQL_SUCCESS dışında (SQL_SUCCESS_WITH_INFO dahil) veya puan 100'den yüksekse bağlantıyı ölü olarak işaretler. O ölü bağlantı tekrar kullanılmayacak (gelecekteki bağlantı taleplerinde bile) ve CPTimeout geçtikten sonra zaman aşımına uğrayacak. Sürücü Müdürü, havuzdan başka bir bağlantı bulmaya devam eder ve fiyatlandırır.

Eğer Sürücü Yöneticisi, puanı 100'den (99 dahil) kesinlikle daha küçük bir bağlantıyı tekrar kullandıysa, Sürücü Yöneticisi bağlantıyı uygulamanın istendiği duruma geri sıfırlamak için SQLSetConnectAttr(SQL_ATTR_DBC_INFO_TOKEN) arayacaktır. Sürücü bu fonksiyon çağrısında bağlantıyı sıfırlamamalıdır.

Eğer fRequiredTransactionEnlistment DOĞRUYSA, hCandidateConnection yeniden kullanmak ekstra bir kayıt (transId != NULL) veya görevden çıkarma (transId == NULL) gerektirir. Bu, bir bağlantıyı tekrar kullanmanın maliyetini ve sürücünün bağlantıyı tekrar kullanacaksa bağlantıyı kaydedip alıp kaldırmayacağını gösterir. fRequireTransactionEnlistment YANLIŞ ise, sürücü transId değerini görmezden gelmelidir.

Sürücü Yöneticisi, hRequest ve hCandidateConnection'ın ana HENV kullanıcı tanımının aynı olduğunu garanti eder. Sürücü Yöneticisi, hRequest ve hCandidateConnection ile ilişkili havuz kimliğinin aynı olduğunu garanti eder.

Uygulamalar bu fonksiyonu doğrudan çağırmamalıdır. Sürücüye duyarlı bağlantı havuzunu destekleyen bir ODBC sürücüsü bu fonksiyonu uygulamalıdır.

ODBC sürücü geliştirme için sqlspi.h ekleyin.