Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Överensstämmelse
Version introducerad: ODBC 3.81 Standardefterlevnad: ODBC
Summary
SQLRateConnection avgör om en drivrutin kan återanvända en befintlig anslutning i anslutningspoolen.
Syntax
SQLRETURN SQLRateConnection(
SQLHDBC_INFO_TOKEN hRequest,
SQLHDBC hCandidateConnection,
BOOL fRequiredTransactionEnlistment,
TRANSID transId,
DWORD * pRating );
Arguments
hRequest
[Input] Ett tokenhandtag som representerar den nya applikationsanslutningsförfrågan.
hCandidateConnection
[Input] Den befintliga anslutningen i anslutningspoolen. Anslutningen måste vara i öppet tillstånd.
fRequiredTransactionEnlistment
[Input] Om det är SANT krävs en ytterligare värvning för den befintliga anslutningens hCandidateConnection för den nya anslutningsförfrågan (hRequest).
transId
[Input] Om fRequiredTransactionEnlistment är SANT, representerar transId den DTC-transaktion som förfrågan kommer att registrera sig. Om fRequiredTransactionEnlistment är FALSK kommer transId att ignoreras.
pRating
[Utdata] hCandidateConnections återanvändningsbetyg för hRequest. Denna bedömning ligger mellan 0 och 100 (inklusive).
Returns
SQL_SUCCESS, SQL_ERROR eller SQL_INVALID_HANDLE.
Diagnostics
Driver Manager kommer inte att bearbeta diagnostisk information som returneras från denna funktion.
Remarks
SQLRateConnection ger en poäng mellan 0 och 100 (inklusive) som anger hur väl en befintlig anslutning matchar förfrågan.
| Score | Betydelse (när SQL_SUCCESS returneras) |
|---|---|
| 0 | hCandidateConnection får inte återanvändas för hRequest. |
| Alla värden mellan 1 och 98 (inklusive) | Ju högre poäng, desto närmare matchningen hCandidateConnection med hRequest. |
| 99 | Det finns bara missanpassningar i obetydliga attribut. Förarchefen bör stoppa betygsloopen. |
| 100 | Perfekt match. Förarchefen bör stoppa betygsloopen. |
| Alla andra värden som är högre än 100 | hCandidateConnection markeras som död och kommer inte att återanvändas ens vid framtida anslutningsförfrågningar. |
Förarchefen markerar en anslutning som död om returkoden är något annat än SQL_SUCCESS (inklusive SQL_SUCCESS_WITH_INFO) eller om betyget är högre än 100. Den döda anslutningen kommer inte att återanvändas (inte ens vid framtida anslutningsförfrågningar) och kommer så småningom att tidsförsvinna efter att CPTimeout passerat. Förarchefen kommer fortsätta att hitta en annan koppling från poolen att bedöma.
Om Driver Manager återanvänder en anslutning vars poäng är strikt mindre än 100 (inklusive 99), kommer Driver Manager att anropa SQLSetConnectAttr(SQL_ATTR_DBC_INFO_TOKEN) för att återställa anslutningen till det tillstånd som applikationen begärt. Drivrutinen ska inte återställa anslutningen i detta funktionsanrop.
Om fRequiredTransactionEnlistment är SANT kräver återanvändning av hCandidateConnection en extra värvning (transId != NULL) eller avvärjning (transId == NULL). Detta visar kostnaden för att återanvända en anslutning och om föraren bör registrera eller avregistrera anslutningen om den ska återanvända anslutningen. Om fRequireTransactionEnlistment är FALSK bör drivrutinen ignorera värdet transId.
Driver Manager garanterar att det överordnade HENV-handtaget hRequest och hCandidateConnection är detsamma. Driver Manager garanterar att pool-ID:t kopplat till hRequest och hCandidateConnection är detsamma.
Applikationer bör inte anropa denna funktion direkt. En ODBC-drivrutin som stödjer drivrutinsmedveten anslutningspooling måste implementera denna funktion.
Inkludera sqlspi.h för ODBC-drivrutinsutveckling.