#c# #odbc #honeywell
#c# #odbc #honeywell
Вопрос:
Odbc-драйвер имеет версию 2.x, но в Visual Studio используется версия 3.x . Нужно каким-то образом заставить приложение использовать версию 2.x Прямо сейчас, появляется ошибка: «Драйвер не поддерживает версию поведения ODBC, запрошенную приложением (см. SQLSetEnvAttr)». — но не находит способа сообщить приложению использовать другую версию
Пытаюсь установить связь с системой Honeywell. Они не известны тем, что обмениваются данными, но есть ODBC-драйвер, написанный кем-то около 15 лет назад. При запуске на сервере Windows 2003 и компиляции (на том же сервере) в Visual Studio 2005 приложение работает. То же приложение, запущенное на другом сервере: не работает. Приложение, скомпилированное (x86) на любой другой машине: не работает, ни на старом сервере, ни на новом.
Не находит свойств или методов в System.Data.Odbc.OdbcConnection
, чтобы установить версию ODBC для использования.
На данный момент вы не получаете «ошибку» при запуске приложения: оно подключается к dsn, и пользователь аутентифицируется. (Изменение имени пользователя или пароля выдает ошибку) — но данные не извлекаются.
Выполнение трассировки для вызовов драйвера ODBS приводит к:
Сбой DIAG [IM006] [Microsoft] [ODBC Driver Manager] SQLSetConnectAttr драйвера (0)
DIAG [01000] [Microsoft] [Диспетчер драйверов ODBC] Драйвер не поддерживает версию поведения ODBC, запрошенную приложением (см. SQLSetEnvAttr). (0)
….
Сбой DIAG [IM006] [Microsoft] [ODBC Driver Manager] SQLSetConnectAttr драйвера (0)
Тип информации DIAG [HY096] [Honeywell] [ODBC Driver] вне диапазона (1043)
….
ДИАГНОСТИКА [HYC00] [Honeywell] [Драйвер ODBC] Драйвер не поддерживается (1010)
Итак, поскольку нет более нового драйвера для использования — мне нужно, чтобы мое приложение использовало ODBC 2.x — но оно по-прежнему использует ODBC 3.x.
Комментарии:
1. Вы можете установить источник данных ODBC в панели управления: Административные инструменты: Источник данных ODBC
Ответ №1:
Когда вы указываете VS C # подключиться к источнику данных ODBC, он незаметно подключается к ODBC с помощью Microsoft ADO.NET Поставщик ODBC, который хочет, чтобы все было таким же современным, как оно есть.
В этой ситуации лучше всего переключиться на другой ADO.NET Поставщик, который понимает, что у вас не всегда может быть новый драйвер ODBC, и сделает все возможное, чтобы перевести более новый C # ADO.NET При необходимости API обращается к более старым вызовам ODBC API. Мой работодатель предлагает несколько вариантов, один из которых — доступ к данным Enterprise Edition для источников данных ODBC, а другой — Virtuoso Universal Server Enterprise Edition (функционирующий как виртуальная СУБД), оба из которых доступны для немедленной загрузки с бесплатной временной лицензией, предоставляемой для вашего тестирования и оценки.