Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Соответствие
Введенная версия: Соответствие стандартам 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.