Funzione SQLRateConnection

Conformità
Versione introdotta: Conformità agli standard ODBC 3.81: ODBC

Summary
SQLRateConnection determina se un driver può riutilizzare una connessione esistente nel pool di connessioni.

Sintassi

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

Argomenti

hRequest
[Input] Handle di token che rappresenta la nuova richiesta di connessione dell'applicazione.

hCandidateConnection
[Input] Connessione esistente nel pool di connessioni. La connessione deve essere in uno stato aperto.

fRequiredTransactionEnlistment
[Input] Se TRUE, il riutilizzo di hCandidateConnection della connessione esistente per la nuova richiesta di connessione (hRequest) richiede un'integrazione aggiuntiva.

transId
[Input] Se fRequiredTransactionEnlistment è TRUE, transId rappresenta la transazione DTC che verrà integrata dalla richiesta. Se fRequiredTransactionEnlistment è FALSE, transId verrà ignorato.

pRating
[Output] Classificazione di riutilizzo di hCandidateConnection per hRequest. Questa classificazione sarà compresa tra 0 e 100 (inclusi).

Restituisce

SQL_SUCCESS, SQL_ERROR o SQL_INVALID_HANDLE.

Diagnostica

Gestione driver non eelaborare le informazioni di diagnostica restituite da questa funzione.

Commenti

SQLRateConnection produce un punteggio compreso tra 0 e 100 (inclusi) che indica la corrispondenza tra una connessione esistente e la richiesta.

Punteggio Significato (quando SQL_SUCCESS restituito)
0 hCandidateConnection non deve essere riutilizzato per hRequest.
Qualsiasi valore compreso tra 1 e 98 (inclusi) Maggiore è il punteggio, più vicino sarà la corrispondenza di hCandidateConnection con hRequest.
99 Gli attributi non significativi non sono corrispondenti. Gestione driver deve arrestare il ciclo di classificazione.
100 Corrispondenza perfetta. Gestione driver deve arrestare il ciclo di classificazione.
Qualsiasi altro valore maggiore di 100 hCandidateConnection è contrassegnato come non disponibile e non verrà riutilizzato nemmeno in una richiesta di connessione futura.

Gestione driver contrassegnerà una connessione come non attiva se il codice restituito è diverso da SQL_SUCCESS (incluso SQL_SUCCESS_WITH_INFO) o se la classificazione è maggiore di 100. La connessione in attesa non verrà riutilizzata (anche nelle richieste di connessione future) e alla fine verrà timeout dopo il passaggio di CPTimeout. Gestione driver continuerà a trovare un'altra connessione dal pool per la velocità.

Se Gestione driver ha riutilizzato una connessione il cui punteggio è rigorosamente inferiore a 100 (incluso 99), Gestione driver chiamerà SQLSetConnectAttr(SQL_ATTR_DBC_INFO_TOKEN) per ripristinare lo stato richiesto dall'applicazione. Il driver non deve reimpostare la connessione in questa chiamata di funzione.

Se fRequiredTransactionEnlistment è TRUE, il riutilizzo di hCandidateConnection richiede un'integrazione aggiuntiva (transId != NULL) o unenlistment (transId == NULL). Ciò indica il costo del riutilizzo di una connessione e se il driver deve integrare o annullare l'elenco della connessione se sta per riutilizzare la connessione. Se fRequireTransactionEnlistment è FALSE, il driver deve ignorare il valore di transId.

Gestione driver garantisce che l'handle HENV padre di hRequest e hCandidateConnection sia lo stesso. Gestione driver garantisce che l'ID pool associato a hRequest e hCandidateConnection sia lo stesso.

Le applicazioni non devono chiamare direttamente questa funzione. Un driver ODBC che supporta il pool di connessioni con supporto del driver deve implementare questa funzione.

Includere sqlspi.h per lo sviluppo di driver ODBC.

Vedere anche

Sviluppo di un driver ODBC
Pool di connessioni con informazioni sul driver
Sviluppo del rilevamento di pool di connessioni in un driver ODBC