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


Действие параметров ISO

Стандарт ODBC близок к стандарту ISO, а приложения ODBC ожидают стандартного поведения от драйвера ODBC. Чтобы поведение ODBC-драйвера собственного клиента SQL Server было ближе к тому, которое определяется стандартом ODBC, драйвер всегда использует все параметры ISO, доступные в версии SQL Server, к которой он подключается.

Когда ODBC-драйвер собственного клиента SQL Server подключается к экземпляру SQL Server, сервер обнаруживает, что клиент использует ODBC-драйвер собственного клиента SQL Server, и устанавливает некоторые параметры.

Драйвер сам формирует эти инструкции; ODBC-приложение не посылает для этого никаких запросов. Установка этих параметров позволяет ODBC-приложениям, использующим драйвер, иметь лучшую переносимость, поскольку в этом случае поведение сервера более соответствует стандарту ISO.

Приложения на основе DB-Library обычно не вызывают включение этих параметров. Расхождения в поведении клиентов на основе ODBC и на основе DB-Library при выполнении одной и той же инструкции SQL не свидетельствует о проблемах в ODBC-драйвере собственного клиента SQL Server. Следует повторно выполнить инструкцию в среде DB-Library с тем же набором параметров SET, какие использовались бы ODBC-драйвером собственного клиента SQL Server.

Поскольку пользователи и приложения могут в любое время включать и выключать параметры из набора SET, разработчики хранимых процедур и триггеров должны проводить тестирование своих процедур и триггеров как со включенными, так и с отключенными параметрами из этого набора. Это гарантирует, что триггеры и процедуры будут правильно работать независимо от того, какие параметры конкретное соединение установит при вызове триггера или процедуры. Если для работы триггера или хранимой процедуры требуется конкретное значение одного из этих параметров, инструкцию SET следует выполнить в начале триггера или хранимой процедуры. Она сохраняет силу только до завершения триггера или хранимой процедуры; после этого восстанавливается первоначальное значение параметра.

При подключении к экземпляру SQL Server устанавливается также четвертый параметр SET, CONCAT_NULL_YIELDS_NULL. ODBC-драйвер собственного клиента SQL Server не включает эти параметры, если для источника данных, в SQLDriverConnect или SQLBrowseConnect задано значение AnsiNPW=NO.

Как и параметры ISO, о которых шла речь ранее, ODBC-драйвер собственного клиента SQL Server не включает параметр QUOTED_IDENTIFIER, если для источника данных, в SQLDriverConnect или SQLBrowseConnect задано значение QuotedID=NO.

Чтобы драйвер мог узнавать текущие значения параметров SET, ODBC-приложения не должны задавать эти параметры с помощью инструкции языка Transact-SQL SET. Они могут задавать их только через параметры источника данных или соединения. Если приложение запускает инструкции SET, то инструкции SQL, создаваемые драйвером, могут быть неверными.

См. также

Основные понятия

Выполнение инструкций (ODBC)

SQLDriverConnect

SQLBrowseConnect