Действие параметров ISO
Стандарт ODBC близок к стандарту ISO, а приложения ODBC ожидают стандартного поведения от драйвера ODBC. Чтобы обеспечить более точное соответствие поведения, определенному в стандарте ODBC, драйвер ODBC SQL Server Native Client всегда использует все параметры ISO, доступные в версии SQL Server, с которой он подключается.
Когда драйвер ODBC SQL Server Native Client подключается к экземпляру SQL Server, сервер обнаруживает, что клиент использует драйвер ODBC SQL Server Native Client, и устанавливает несколько параметров.
Драйвер сам формирует эти инструкции; ODBC-приложение не посылает для этого никаких запросов. Установка этих параметров позволяет ODBC-приложениям, использующим драйвер, иметь лучшую переносимость, поскольку в этом случае поведение сервера более соответствует стандарту ISO.
Приложения на основе DB-Library обычно не вызывают включение этих параметров. Сайты, наблюдающие за различным поведением клиентов ODBC или DB-Library при выполнении одной инструкции SQL, не должны предполагать, что это указывает на проблему с драйвером ODBC SQL Server Native Client. Сначала необходимо повторно выполнить инструкцию в среде DB-Library с теми же параметрами SET, которые будут использоваться драйвером ODBC SQL Server Native Client.
Поскольку пользователи и приложения могут в любое время включать и выключать параметры из набора SET, разработчики хранимых процедур и триггеров должны проводить тестирование своих процедур и триггеров как со включенными, так и с отключенными параметрами из этого набора. Это гарантирует, что триггеры и процедуры будут правильно работать независимо от того, какие параметры конкретное соединение установит при вызове триггера или процедуры. Если для работы триггера или хранимой процедуры требуется конкретное значение одного из этих параметров, инструкцию SET следует выполнить в начале триггера или хранимой процедуры. Она сохраняет силу только до завершения триггера или хранимой процедуры; после этого восстанавливается первоначальное значение параметра.
При подключении к экземпляру SQL Server также включен четвертый параметр SET, CONCAT_NULL_YIELDS_NULL. Драйвер ODBC SQL Server Native Client не устанавливает эти параметры, если в источнике данных указан AnsiNPW=NO, либо в SQLDriverConnect или SQLBrowseConnect.
Как и параметры ISO, указанные ранее, драйвер SQL SERVER NATIVE CLIENT ODBC не включает параметр QUOTED_IDENTIFIER, если Параметр QuotedID=NO указан в источнике данных или в SQLDriverConnect или SQLBrowseConnect.
Чтобы разрешить драйверу узнать текущее состояние параметров SET, приложения ODBC не должны использовать инструкцию Transact-SQL SET для задания этих параметров. Они могут задавать их только через параметры источника данных или соединения. Если приложение запускает инструкции SET, то инструкции SQL, создаваемые драйвером, могут быть неверными.
См. также:
Выполнение инструкций (ODBC)
SQLDriverConnect
SQLBrowseConnect