Выделение дескриптора соединения

Прежде чем приложение сможет подключиться к источнику данных или драйверу, он должен выделить дескриптор подключения. Это делается путем вызова SQLAllocHandle с параметром HandleType , равным SQL_HANDLE_DBC и InputHandle , указывающим на инициализированный дескриптор среды.

Характеристики подключения управляются параметром атрибутов подключения. Например, так как транзакции происходят на уровне подключения, уровень изоляции транзакций является атрибутом подключения. Аналогичным образом время ожидания входа или количество секунд ожидания при попытке подключения до истечения времени ожидания является атрибутом подключения.

Атрибуты подключения задаются с помощью SQLSetConnectAttr, а текущие параметры извлекаются с помощью SQLGetConnectAttr. Если sqlSetConnectAttr вызывается перед попыткой подключения, диспетчер драйверов ODBC сохраняет атрибуты в своей структуре подключения и задает их в драйвере в рамках процесса подключения. Перед попыткой подключения приложения необходимо задать некоторые атрибуты подключения; Другие пользователи могут быть заданы после завершения подключения. Например, SQL_ATTR_ODBC_CURSORS необходимо задать перед подключением, но SQL_ATTR_AUTOCOMMIT можно задать после подключения.

Приложения, работающие с SQL Server версии 7.0 или более поздней, иногда могут повысить производительность, сбросив размер сетевого пакета потока табличных данных (TDS). Размер пакета по умолчанию устанавливается на сервере в 4 КБ. Размер пакета от 4 КБ до 8 КБ обычно обеспечивает лучшую производительность. Если тестирование показывает, что оно работает лучше с другим размером пакета, приложение может сбросить размер пакета. Приложения ODBC могут сделать это перед подключением, вызвав SQLSetConnectAttr с параметром SQL_ATTR_PACKET_SIZE. Некоторые приложения работают лучше с большим размером пакета, но повышение производительности обычно минимально для размеров пакетов размером более 8 КБ.

Драйвер ODBC для собственного клиента SQL Server имеет ряд расширенных атрибутов подключения, которые приложение может использовать для повышения функциональности. Некоторые из этих атрибутов управляют теми же параметрами, которые можно указать в источниках данных и использовать для переопределения любого параметра в источнике данных. Например, если приложение использует кавычекные идентификаторы, оно может задать атрибут для конкретного драйвера SQL_COPT_SS_QUOTED_IDENT SQL_QI_ON, чтобы этот параметр всегда был задан независимо от параметра в любом источнике данных.

См. также

Взаимодействие с SQL Server (ODBC)