Поделиться через


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

Прежде, чем приложение может подключиться к источнику данных или драйверу, оно должно выделить дескриптор соединения. Это достигается путем вызова функции 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)