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


Сопоставление SQLSetConnectOption

Когда ODBC 2.x приложение вызывает SQLSetConnectOption через драйвер ODBC 3*.x*, вызов

SQLSetConnectOption(hdbc, fOption, vParam)  

Результат будет следующим образом:

  • Если fOption указывает атрибут подключения, определенный ODBC, который требует строки, диспетчер драйверов вызывает

    SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, SQL_NTS)  
    
  • Если fOption указывает атрибут подключения, определенный ODBC, который возвращает 32-разрядное целое значение, диспетчер драйверов вызывает

    SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, 0)  
    
  • Если fOption указывает атрибут подключения, определенный драйвером, диспетчер драйверов вызывает

    SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, BufferLength)  
    

В предыдущих трех случаях аргумент ConnectionHandle имеет значение в hdbc, аргумент Атрибута имеет значение в fOption, а аргумент ValuePtr имеет то же значение, что и vParam.

Так как диспетчер драйверов не знает, требуется ли атрибут подключения, определяемый драйвером, строковое или 32-разрядное целочисленное значение, оно должно передать допустимое значение для аргумента BufferLength SQLSetConnectAttr. Если драйвер определил специальную семантику для атрибутов подключения, определенных драйвером и должен вызываться с помощью SQLSetConnectOption, он должен поддерживать SQLSetConnectOption.

Значение ODBC 2.x приложение вызывает SQLSetConnectOption , чтобы задать параметр инструкции для конкретного драйвера в драйвере ODBC 3*.x* и параметр был определен в ODBC 2.X версия драйвера, новая константа манифеста должна быть определена для параметра в драйвере ODBC 3*.x*. Если в вызове SQLSetConnectOption используется старая константа манифеста, диспетчер драйверов вызовет SQLSetConnectAttr с аргументом StringLength значение 0.

Для драйвера ODBC 3*.x* диспетчер драйверов больше не проверяет, находится ли fOption между SQL_CONN_OPT_MIN и SQL_CONN_OPT_MAX или больше SQL_CONNECT_OPT_DRVR_START.

Настройка параметров инструкции на уровне подключения

В ODBC 2.x, приложение может вызвать SQLSetConnectOption , чтобы задать параметр инструкции. После этого драйвер устанавливает параметр инструкции в качестве значения по умолчанию для любых инструкций, которые позже выделены для этого подключения. Он определяет, задает ли драйвер параметр инструкции для всех существующих инструкций, связанных с указанным подключением.

Эта возможность устарела в ODBC 3*.x*. Драйверы ODBC 3*.x* должны поддерживать только параметр ODBC 2.Атрибуты инструкции x на уровне подключения, если они хотят работать с ODBC 2.Приложения x , которые делают это. Приложения ODBC 3*.x* никогда не должны задавать атрибуты инструкции на уровне подключения. Атрибуты инструкции ODBC 3*.x* нельзя задать на уровне подключения, за исключением атрибутов SQL_ATTR_METADATA_ID и SQL_ATTR_ASYNC_ENABLE, которые являются атрибутами подключения и атрибутами инструкции, и могут быть заданы на уровне подключения или на уровне инструкции.