Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Konformität
Eingeführte Version: ODBC 3.81 Normeneinhaltung: ODBC
Summary
SQLRateConnection bestimmt, ob ein Treiber eine bestehende Verbindung im Connection Pool wiederverwenden kann.
Syntax
SQLRETURN SQLRateConnection(
SQLHDBC_INFO_TOKEN hRequest,
SQLHDBC hCandidateConnection,
BOOL fRequiredTransactionEnlistment,
TRANSID transId,
DWORD * pRating );
Argumente
hRequest
[Eingabe] Ein Token-Handle, der die neue Anwendungsverbindungsanfrage darstellt.
hCandidateConnection
[Eingabe] Die bestehende Verbindung im Verbindungspool. Die Verbindung muss sich im geöffneten Zustand befinden.
fErforderlichTransaktionAnmeldung
[Eingabe] Wenn TRUE, erfordert die Wiederverwendung der bestehenden Verbindung für die neue Verbindungsanfrage (hRequest) eine zusätzliche Anmeldung.
transId
[Eingabe] Wenn fRequiredTransactionEnlistment TRUE ist, stellt transId die DTC-Transaktion dar, die die Anfrage aufnimmt. Wenn fRequiredTransactionEnlistment FALSCH ist, wird transId ignoriert.
pRating
[Ausgabe] die Wiederverwendungsbewertung von hCandidateConnection für die hRequest. Diese Bewertung liegt zwischen 0 und 100 (inklusive).
Rücklieferungen
SQL_SUCCESS, SQL_ERROR oder SQL_INVALID_HANDLE.
Diagnostics
Der Treibermanager verarbeitet keine Diagnoseinformationen, die von dieser Funktion zurückgegeben werden.
Bemerkungen
SQLRateConnection liefert einen Wert zwischen 0 und 100 (inklusive), der angibt, wie gut eine bestehende Verbindung zur Anfrage passt.
| Ergebnis | Bedeutung (wenn SQL_SUCCESS zurückgegeben wird) |
|---|---|
| 0 | hCandidateConnection darf für die hRequest nicht wiederverwendet werden. |
| Alle Werte zwischen 1 und 98 (inklusive) | Je höher die Punktzahl, desto näher ist die hCandidateConnection-Übereinstimmung mit hRequest. |
| 99 | Es gibt nur Missverhältnisse bei unbedeutenden Attributen. Der Fahrermanager sollte die Bewertungsschleife stoppen. |
| 100 | Perfekte Übereinstimmung. Der Fahrermanager sollte die Bewertungsschleife stoppen. |
| Jeder andere Wert größer als 100 | hCandidateConnection ist als tot markiert und wird auch bei einer zukünftigen Verbindungsanfrage nicht wiederverwendet. |
Der Driver Manager markiert eine Verbindung als tot, wenn der Rückgabecode etwas anderes als SQL_SUCCESS ist (einschließlich SQL_SUCCESS_WITH_INFO) oder die Bewertung höher als 100 ist. Diese abgebrochene Verbindung wird nicht wiederverwendet (auch nicht bei zukünftigen Verbindungsanfragen) und wird schließlich nach Ablauf von CPTimeout zeitlich abgelaufen. Der Fahrermanager wird weiterhin eine andere Verbindung aus dem Pool finden, um sie zu bewerten.
Wenn der Driver Manager eine Verbindung mit einer strikt niedrigeren Punktzahl als 100 (einschließlich 99) wiederverwendet, ruft der Driver Manager SQLSetConnectAttr(SQL_ATTR_DBC_INFO_TOKEN) auf, um die Verbindung wieder in den von der Anwendung geforderten Zustand zurückzusetzen. Der Treiber sollte die Verbindung in diesem Funktionsaufruf nicht zurücksetzen.
Wenn fRequiredTransactionEnlistment TRUE ist, benötigt die Wiederverwendung von hCandidateConnection eine zusätzliche Enlistment (transId != NULL) oder Unenlistment (transId == NULL). Dies zeigt die Kosten für die Wiederverwendung einer Verbindung an und ob der Fahrer die Verbindung an- oder abmelden sollte, wenn er die Verbindung wiederverwenden will. Wenn fRequireTransactionEnlistment FALSCH ist, sollte der Treiber den Wert von transId ignorieren.
Der Driver Manager garantiert, dass der übergeordnete HENV-Handle von hRequest und hCandidateConnection identisch ist. Der Driver Manager garantiert, dass die Pool-ID, die mit hRequest und hCandidateConnection verknüpft ist, dieselbe ist.
Anwendungen sollten diese Funktion nicht direkt aufrufen. Ein ODBC-Treiber, der treiberbewusstes Connection Pooling unterstützt, muss diese Funktion implementieren.
Fügen Sie sqlspi.h für die Entwicklung von ODBC-Treibern hinzu.