Выделение дескриптора соединения
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)
Прежде, чем приложение может подключиться к источнику данных или драйверу, оно должно выделить дескриптор соединения. Это делается путем вызова 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, чтобы этот параметр был установлен всегда, независимо от настройки источника данных.