Драйвер odbc не поддерживает требуемые свойства

Обновлено: 07.07.2024

В этой статье обсуждаются драйверы ODBC, подключающиеся к SQL Server.

Совместимость с версиями SQL

Совместимость указывает, что драйвер был протестирован на совместимость с существующими выпусками SQL во время выпуска драйвера. Выпуски SQL Server обычно пытаются поддерживать обратную совместимость с существующими драйверами клиента. Но новые функции в выпусках SQL Server могут быть недоступны для более старых версий клиентских драйверов.

Версия базы данных →
↓ Версия драйвера
База данных SQL Azure Azure Synapse Analytics Управляемый экземпляр SQL Azure SQL Server 2019 SQL Server 2017 SQL Server 2016 SQL Server 2014 SQL Server 2012 SQL Server 2008 R2 SQL Server 2008 SQL Server 2005
17.8 Да Да Да Да Да Да Да Да
17,7 Да Да Да Да Да Да Да Да
17.6 Да Да Да Да Да Да Да Да
17.5 Да Да Да Да Да Да Да Да
17.4 Да Да Да Да Да Да Да Да
17.3 Да Да Да Да Да Да Да Да Да Да
17.2 Да Да Да Да Да Да Да Да Да
17.1 Да Да Да Да Да Да Да Да Да
17,0 Да Да Да Да Да Да Да Да Да
Версия 13.1 Да Да Да Да Да Да
13 Да Да Да Да Да
11 Да Да Да Да Да

Сведения о строке подключения

Имя драйвера, которое следует указывать в строке подключения, — ODBC Driver 11 for SQL Server или ODBC Driver 13 for SQL Server (как для 13, так и для 13.1) или ODBC Driver 17 for SQL Server .

Поддерживаемые операционные системы

Следующая таблица указывает на поддержку версии драйвера для версий операционной системы Windows:

Операционная система →
↓ Версия драйвера
Windows Server 2019 Windows Server 2016 Windows Server 2012 R2 Windows Server 2012 Windows Server 2008 R2 Windows 10 Windows 8.1 Windows 7 Windows Vista с пакетом обновления 2 (SP2)
17.8 Да Да Да Да Да Да
17,7 Да Да Да Да Да Да
17.6 Да Да Да Да Да Да
17.5 Да Да Да Да Да Да
17.4 Да Да Да Да Да Да Да Да
17.3 Да Да Да Да Да Да Да Да
17.2 Да Да Да Да Да Да Да
17.1 Да Да Да Да Да Да Да
17,0 Да Да Да Да Да Да Да
Версия 13.1 Да Да Да Да Да Да Да
13 Да Да Да Да
11 Да Да Да Да

Установка Microsoft ODBC Driver for SQL Server

Драйвер устанавливается при запуске msodbcsql.msi из одной из загрузок для Windows.

Для тех, кто установил драйвер 17.1.0.1 или ниже, рекомендуется удалить его вручную перед установкой новой версии драйвера.

Параллельно с Native Client

Драйвер можно установить параллельно с SQL Server Native Client. Основные версии драйвера (11, 13, 17) могут быть установлены параллельно друг с другом.

При инициировании msodbcsql.msi по умолчанию устанавливаются только клиентские компоненты. Этими компонентами служат файлы, поддерживающие работу приложения, разработанного с помощью драйвера. Чтобы установить компоненты пакета SDK, укажите в командной строке ADDLOCAL=ALL . Ниже приведен пример.

Лицензия пользователя

Укажите IACCEPTMSODBCSQLLICENSETERMS=YES , чтобы принять условия лицензионного соглашения, если для установки используется параметр /passive , /qn , /qb или /qr . Этот параметр указывается только прописными буквами. Ниже приведен пример.

Удаление без взаимодействия с пользователем

В следующем примере показано выполнение удаления без взаимодействия с пользователем.

Указание зависимость

Если приложение использует драйвер, оно должно указывать, что зависит от драйвера, с помощью параметра установки APPGUID . Это позволяет установщику драйвера вывести сведения о зависимых приложениях перед удалением. Чтобы задать зависимость от драйвера, присвойте параметру командной строки APPGUID код продукта при автоматической установке драйвера. Код продукта необходимо создать при использовании установщика (Майкрософт) для формирования пакета установки приложения. Ниже приведен пример.

Программы командной строки: sqlcmd.exe и bcp.exe

Программы командной строки bcp.exe и sqlcmd.exe , которые используются с драйвером, можно загрузить по адресу Microsoft Command Line Utilities 11 для SQL Server, Microsoft Command Line Utilities 13 для SQL Server или Microsoft Command Line Utilities 13.1 для SQL Server. Драйвер является необходимым условием для установки sqlcmd.exe и bcp.exe .

bcp.exe и sqlcmd.exe устанавливаются во вложенную папку 110\Tools в %PROGRAMFILES%\Microsoft SQL Server\Client SDK\ODBC для версии 11, и 130\Tools для 13 и 13.1.

Приложение, использующее функции BCP, должно указывать драйвер из той же версии, которая поставлялась с файлом заголовка и библиотекой, применявшимися при компиляции приложения.

Например, при компиляции приложения ODBC с помощью msodbcsql11.lib и msodbcsql.h используйте "DRIVER=" в строке подключения.

Компоненты Microsoft ODBC Driver for SQL Server в Windows

Драйвер ODBC для Windows состоит из следующих компонентов:

Примечание. В одной программе нельзя сочетать ссылки на msodbcsql.h и odbcss.h.

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

ODBC весьма полезен для процедур доступа к приложениям, особенно для профессиональных пользователей. И, похоже, существует множество проблем для пользователей Windows 10, которые либо перешли с Windows 7, либо обновили свою версию Windows 10 до последней версии.

Если вы один из них и у вас есть определенные проблемы с ODBC в Windows 10, проверьте решения ниже.

  1. Удалить SMBv1 и включить SMBv2/SMBv3)
  2. Проверьте брандмауэр Windows и Защитник Windows
  3. Обновление драйверов
  4. Откат к предыдущей версии Windows

Решение 1. Удалите SMBv1 и включите SMBv2/SMBv3)

Некоторые пользователи решили проблему, отключив SMBv1 и включив SMBv2 или SMBv3. Это можно сделать различными способами, начиная с PowerShell или редактора реестра. Последний способ быстрее и проще, но может негативно повлиять на ваш компьютер при неправильном использовании. Поэтому, прежде чем выполнять следующие шаги, обязательно сделайте резервную копию вашего реестра.

Вот как отключить SMBv1 и включить SMBv2/SMBv3:


  1. В строке поиска Windows введите regedit и откройте редактор реестра.
  2. Перейдите в ComputerHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters .
  3. Щелкните правой кнопкой мыши пустое пространство и создайте новый Dword, назовите его SMB1 и установите его значение равным 0.
  4. Щелкните правой кнопкой мыши на пустом месте и создайте новый Dword, назовите его SMB2 и установите его значение равным 1.
  5. Закройте редактор реестра и перезагрузите компьютер.

Сделайте это на каждой уязвимой машине и не забудьте перезагрузить ее, чтобы изменения вступили в силу.

  • ЧИТАЙТЕ ТАКЖЕ: отключите SMBv1 в Windows с помощью этих быстрых методов

Решение 2. Проверьте брандмауэр Windows и Защитник Windows

Некоторым пользователям удалось решить проблему, просто добавив белый список или временно отключив брандмауэр Windows и включив Защитник Windows. Это долгосрочное решение, но оно того стоит. Если у вас уже есть сторонний антивирус, попробуйте объединить его с нативным антивирусом.

После этого перезагрузите компьютер и попробуйте снова получить доступ к приложению ODBC.

В случае, если вы используете 32-битный Office на 64-битной машине через ODBC, вам потребуется некоторая перенастройка, чтобы избежать ошибок драйвера. Или, скорее, доступ к версии ODBC32 вместо стандартной 64-битной версии, представленной в архитектуре x64.

Вот где его найти и как его запустить:


  1. Перейдите к C: WindowssysWOW64odbcad32.exe и запустите его. Это 32-битный администратор источника данных ODBC.
  2. Попробуйте применить драйверы снова.
  3. После того, как вы применили драйверы, перезагрузите компьютер.

Как говорили многие из затронутых пользователей, проблема возникла после того, как они обновили Windows 10 до версии 1803. То же самое можно применить к 1809. И вместо того, чтобы ждать, пока Microsoft решит проблемы ODBC в их текущем выпуске, мы скорее предлагаем откат до предыдущей версии, где сервис был полностью функциональным.

Вот как перейти к предыдущей версии Windows 10:


  1. Откройте Настройки .
  2. Выберите Обновление и безопасность .
  3. Выберите Восстановление на левой панели.
  4. Нажмите « Вернуться к предыдущей версии Windows 10 ».
  5. Нажмите Начало работы и следуйте инструкциям.

Возможные значения параметра TRANSACTION :

Значение по умолчанию DEFAULT означает "использовать умолчание SQL-сервера". Подробнее об уровнях изоляции транзакций смотрите в документации по соответствующей СУБД.


Чтобы исключить проблемы с кодировкой, необходимо отключить следующие параметры ODBC-драйвера:

Сама база данных создается предварительно на SQL-сервере с параметрами, указанными выше.

Необходимо также настроить параметры ODBC-драйвера для компьютера, на который установлен Сервер Dr.Web.


Настройка ODBC-драйвера для ОС Windows

Для настройки параметров ODBC-драйвера:

1. На Панели управления ОС Windows выберите пункт Администрирование , в открывшемся окне дважды щелкните по значку Источники данных (ODBC) . Откроется окно Администратор источников данных ODBC . Перейдите на вкладку Системный DSN .

3. Выберите в списке пункт, соответствующий ODBC-драйверу для данной БД, и нажмите кнопку Готово . Откроется первое из окон настройки доступа к серверу баз данных.


При использовании внешней СУБД необходимо установить последнюю версию ODBC-драйвера, поставляемую с данной СУБД. Использование ODBC-драйвера, поставляемого вместе с ОС Windows, не рекомендовано. Исключением являются БД, поставляемые Microsoft без ODBC-драйвера.

6. В выпадающем списке Использовать по умолчанию базу данных выберите базу данных, используемую Сервером Dr.Web. При этом обязательно должно быть указано имя базы данных Сервера, а не значение Default .


7. По окончании настройки нажмите кнопку Готово . Откроется окно со сводкой заданных вами параметров.


С помощью ODBC, программы могут подключаться к различным СУБД (MySQL, Microsoft SQL Server, SQLite, MongoDB и другие) и выполнять SQL-запросы.

Как создать имя источника базы данных (DSN)

Имя источника базы данных указывается в функции подключения ODBC.
Например, в PHP эта функция называется odbc_connect().









16. Готово, мы создали имя источника базы данных (DSN) и теперь мы можем использовать его в своих программах.


Как подключаться к ODBC из PHP

Убедитесь, что в php.ini раскомментирована строка:
Подключаться будем с помощью функции odbc_connect().

Есть 2 способа подключения:
1. Указать имя источника базы данных (DSN)

В завершении, давайте попробуем получить данные из MS SQL сервера через ODBC-подключение

Читайте также: