Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Conformidade
Versão Introduzida: ODBC 3.81 Conformidade com os Padronizados: ODBC
Summary
SQLRateConnection determina se um driver pode reutilizar uma conexão existente no pool de conexões.
Sintaxe
SQLRETURN SQLRateConnection(
SQLHDBC_INFO_TOKEN hRequest,
SQLHDBC hCandidateConnection,
BOOL fRequiredTransactionEnlistment,
TRANSID transId,
DWORD * pRating );
Argumentos
hRequest
[Entrada] Um token handle representando a nova solicitação de conexão de aplicação.
hCandidateConnection
[Entrada] A conexão existente no pool de conexões. A conexão deve estar em estado aberto.
fRequiredTransactionEnlistment
[Entrada] Se for TRUE, reutilizar a hCandidateConnection da conexão existente para a nova solicitação de conexão (hRequest) requer um alistamento adicional.
transId
[Entrada] Se o fRequiredTransactionEnlistment for TRUE, transId representa a transação DTC que a solicitação irá registrar. Se o fRequiredTransactionEnlistment for FALSO, o transId será ignorado.
pRating
[Saída] Classificação de reutilização do hCandidateConnection para o hRequest. Essa classificação ficará entre 0 e 100 (inclusive).
Returns
SQL_SUCCESS, SQL_ERROR ou SQL_INVALID_HANDLE.
Diagnostics
O Gerenciador de Drivers não processará as informações de diagnóstico retornadas dessa função.
Remarks
O SQLRateConnection produz uma pontuação entre 0 e 100 (inclusive) indicando o quão bem uma conexão existente corresponde à solicitação.
| Score | Significado (quando SQL_SUCCESS é devolvido) |
|---|---|
| 0 | hCandidateConnection não deve ser reutilizado para o hRequest. |
| Quaisquer valores entre 1 e 98 (inclusive) | Quanto maior a pontuação, mais próxima será a correspondência hCandidateConnection com hRequest. |
| 99 | Só há descompassos em atributos insignificantes. O Driver Manager deveria encerrar o ciclo de avaliação. |
| 100 | Combinação perfeita. O Driver Manager deveria encerrar o ciclo de avaliação. |
| Qualquer outro valor maior que 100 | hCandidateConnection está marcado como inativo e não será reutilizado nem mesmo em uma solicitação futura de conexão. |
O Driver Manager marcará uma conexão como morta se o código de retorno for diferente de SQL_SUCCESS (incluindo SQL_SUCCESS_WITH_INFO) ou se a classificação for maior que 100. Essa conexão inativa não será reutilizada (mesmo em futuras solicitações de conexão) e eventualmente será expirada após a passagem do CPTimeout. O Driver Manager continuará buscando outra conexão do pool para avaliar.
Se o Gerenciador de Drivers reutilizou uma conexão cuja pontuação é estritamente menor que 100 (incluindo 99), o Gerenciador de Drivers chamará SQLSetConnectAttr(SQL_ATTR_DBC_INFO_TOKEN) para redefinir a conexão ao estado solicitado pela aplicação. O driver não deve resetar a conexão nessa chamada de função.
Se o fRequiredTransactionEnlistment for TRUE, reutilizar hCandidateConnection requer um alistamento extra (transId != NULL) ou desalistamento (transId == NULL). Isso indica o custo de reutilizar uma conexão e se o driver deve registrar ou desligar a conexão caso vá reutilizá-la. Se o fExigeTransactionEnlistment for FALSO, o driver deve ignorar o valor de transId.
O Driver Manager garante que o handle HENV pai do hRequest e do hCandidateConnection sejam os mesmos. O Driver Manager garante que o ID do pool associado ao hRequest e ao hCandidateConnection seja o mesmo.
As aplicações não devem chamar essa função diretamente. Um driver ODBC que suporte pooling de conexões consciente do driver deve implementar essa função.
Incluir sqlspi.h para desenvolvimento de drivers ODBC.