Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zgodność
Wprowadzona wersja: ODBC 3.81 Zgodność ze standardami: ODBC
Podsumowanie
SQLRateConnection określa, czy sterownik może ponownie wykorzystać istniejące połączenie w puli połączeń.
Syntax
SQLRETURN SQLRateConnection(
SQLHDBC_INFO_TOKEN hRequest,
SQLHDBC hCandidateConnection,
BOOL fRequiredTransactionEnlistment,
TRANSID transId,
DWORD * pRating );
Arguments
hRequest
[Input] Uchwyt tokena reprezentujący nowe żądanie połączenia aplikacji.
hCandidateConnection
[Input] Istniejące połączenie w puli połączeń. Połączenie musi być w stanie otwartym.
fRequiredTransactionEnlistment
[Input] Jeśli JEST PRAWDA, ponowne użycie hCandidateConnection istniejącego połączenia dla nowego żądania połączenia (hRequest) wymaga dodatkowego zgłoszenia.
transId
[Input] Jeśli fRequiredTransactionEnlistment jest PRAWDZIWY, transId reprezentuje transakcję DTC, którą zażądanie wygeneruje. Jeśli fRequiredTransactionEnlistment jest FAŁSZYWE, transId zostanie zignorowany.
pRating
[Wyjście] ocena ponownego użycia hCandidateConnection dla hRequest. Ta ocena będzie mieścić się w przedziale od 0 do 100 (włącznie).
Zwroty
SQL_SUCCESS, SQL_ERROR lub SQL_INVALID_HANDLE.
Diagnostyka
Driver Manager nie przetwarza informacji diagnostycznych zwróconych z tej funkcji.
Remarks
SQLRateConnection generuje wynik od 0 do 100 (włącznie), wskazujący, jak dobrze istniejące połączenie odpowiada żądaniu.
| Score | Znaczenie (gdy SQL_SUCCESS zostanie zwrócone) |
|---|---|
| 0 | hCandidateConnection nie może być ponownie używany do hRequest. |
| Dowolne wartości od 1 do 98 (włącznie) | Im wyższy wynik, tym bliżej hCandidateConnection odpowiada hRequest. |
| 99 | Są tylko niezgodności w nieistotnych cechach. Driver Manager powinien zakończyć pętlę oceny. |
| 100 | Idealne dopasowanie. Driver Manager powinien zakończyć pętlę oceny. |
| Każda inna wartość większa niż 100 | hCandidateConnection jest oznaczony jako martwy i nie będzie ponownie używany nawet w przyszłym żądaniu połączenia. |
Driver Manager oznaczy połączenie jako nieaktywne, jeśli kod zwrotny to cokolwiek innego niż SQL_SUCCESS (w tym SQL_SUCCESS_WITH_INFO) lub ocena jest większa niż 100. To martwe połączenie nie będzie ponownie używane (nawet w przyszłych żądaniach połączenia) i ostatecznie zostanie wygaszone po przejściu CPTimeout. Driver Manager będzie nadal szukał kolejnego połączenia z puli, aby ocenić.
Jeśli Driver Manager ponownie użył połączenia, którego wynik jest ściśle mniejszy niż 100 (w tym 99), Driver Manager wywoła SQLSetConnectAttr(SQL_ATTR_DBC_INFO_TOKEN), aby przywrócić połączenie do stanu żądanego przez aplikację. Sterownik nie powinien resetować połączenia w tym wywołaniu funkcji.
Jeśli fRequiredTransactionEnlistment jest PRAWDZIWY, ponowne użycie hCandidateConnection wymaga dodatkowego zaciągnięcia (transId != NULL) lub wycofania się ze służby (transId == NULL). To wskazuje koszt ponownego użycia połączenia oraz to, czy sterownik powinien zarejestrować lub odrejestrować połączenie, jeśli zamierza je ponownie użyć. Jeśli fRequireTransactionEnlistment jest FAŁSZYWE, kierowca powinien zignorować wartość transId.
Driver Manager gwarantuje, że nadrzędny handle HENV dla hRequest i hCandidateConnection jest taki sam. Driver Manager gwarantuje, że identyfikator puli powiązany z hRequest i hCandidateConnection jest taki sam.
Aplikacje nie powinny wywoływać tej funkcji bezpośrednio. Sterownik ODBC wspierający pulowanie połączeń świadomych sterowników musi implementować tę funkcję.
Uwzględnij sqlspi.h do tworzenia sterowników ODBC.