Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Соответствие
Введенная версия: Соответствие стандартам ODBC 3.81: ODBC
Сводка
SQLRateConnection определяет, может ли драйвер повторно использовать существующее соединение в пуле соединений.
Syntax
SQLRETURN SQLRateConnection(
SQLHDBC_INFO_TOKEN hRequest,
SQLHDBC hCandidateConnection,
BOOL fRequiredTransactionEnlistment,
TRANSID transId,
DWORD * pRating );
Arguments
hRequest
[Ввод] Токен-дескриптор, представляющий запрос на подключение нового приложения.
hCandidateConnection
[Ввод] Существующее соединение в пуле соединений. Соединение должно быть в открытом состоянии.
fRequiredTransactionEnlistment
[Ввод] Если TRUE, повторное использование hCandidateConnection существующего соединения для нового запроса соединения (hRequest) требует дополнительного зачисления.
transId
[Ввод] Если fRequiredTransactionEnlistment — TRUE, transId представляет транзакцию DTC, которую запрос будет зачислен. Если fRequiredTransactionEnlistment — FALSE, transId будет игнорирован.
pRating
[Выход] Рейтинг повторного использования hCandidateConnection для hRequest. Этот рейтинг будет от 0 до 100 (включительно).
Returns
SQL_SUCCESS, SQL_ERROR или SQL_INVALID_HANDLE.
Diagnostics
Менеджер драйверов не обрабатывает диагностическую информацию, возвращаемую из этой функции.
Remarks
SQLRateConnection показывает балл от 0 до 100 (включительно), указывающий, насколько хорошо существующее соединение соответствует запросу.
| Балл | Значение (когда SQL_SUCCESS возвращается) |
|---|---|
| 0 | hCandidateConnection не должен использоваться повторно для hRequest. |
| Любые значения от 1 до 98 (включительно) | Чем выше балл, тем ближе совпадение hCandidateConnection с hRequest. |
| 99 | Несоответствия встречаются только в незначительных характеристиках. Менеджер водителей должен прервать цикл рейтингов. |
| 100 | Идеальное совпадение. Менеджер водителей должен прервать цикл рейтингов. |
| Любое другое значение больше 100 | hCandidateConnection помечен как мёртвый и не будет использоваться повторно даже в будущем запросе соединения. |
Менеджер водителей пометит соединение как мертвое, если код возврата отличается от SQL_SUCCESS (включая SQL_SUCCESS_WITH_INFO) или если рейтинг превышает 100. Это мёртвое соединение не будет использоваться повторно (даже в будущих запросах) и в итоге будет истечено после завершения CPTimeout. Менеджер водителей продолжит искать другое соединение из пула для оценки.
Если Driver Manager повторно использует соединение с рейтингом строго меньше 100 (включая 99), Driver Manager вызовет SQLSetConnectAttr(SQL_ATTR_DBC_INFO_TOKEN), чтобы сбросить соединение в запрошенное приложением состояние. Драйвер не должен сбрасывать соединение в этом вызове функции.
Если fRequiredTransactionEnlistment — TRUE, повторное использование hCandidateConnection требует дополнительного enlistment (transId != NULL) или unenlistment (transId == NULL). Это показывает стоимость повторного использования соединения и то, должен ли драйвер включать или отключать соединение, если собирается использовать его повторно. Если fRequireTransactionEnlistment — FALSE, драйвер должен игнорировать значение transId.
Driver Manager гарантирует, что родительский HENV-дескриптор hRequest и hCandidateConnection совпадает. Менеджер драйверов гарантирует, что идентификаторы пула, связанные с hRequest и hCandidateConnection , совпадают.
Приложения не должны вызывать эту функцию напрямую. Драйвер ODBC, поддерживающий пул соединений с учётом драйвера, должен реализовать эту функцию.
Включите sqlspi.h для разработки драйверов ODBC.