SQL Server DSN-Less ODBC Указывает 32-разрядный драйвер
Я работаю с более старым приложением, которое я недавно обновил до .NET 4.5. Приложение использует соединения DSN ODBC. Однако в случае приложения он доступен из одного места на сетевом диске, поэтому нет смысла требовать DSN, и это облегчит развертывание и обновления, чтобы использовать строку подключения DSN-less на месте , Я делаю базовую строку как таковую:
Driver={SQL Server}; Server=; Database=; UID=; PWD=
Проблема заключается в том, что приложение скомпилировано как 32 бит, но может использоваться на 32-битной или 64-битной машине. На 64-битных машинах я получаю эту ошибку:
Указанный DSN содержит несоответствие архитектуры между Драйвером и Приложением
Что по существу означает, что он пытается использовать 64-битный драйвер для 32-разрядного приложения. Это достаточно легко справиться, за исключением того, что имя драйвера для SQL Server выглядит одинаково для 32 и 64 бит. Итак, как я могу указать только 32-битный драйвер в строке подключения?
- Параметрированный SQL-запрос с помощью RODBC
- Как редактировать пользовательский DSN программно в .Net?
- Сохраненные процедуры и привязка параметров
- Запуск OSQL в системах, на которых не установлен Sql-сервер
- Подключение к MS SQL Server 2005 с Mac с помощью Ruby, ODBC и FreeTDS
- Максимальные байты, которые могут быть отправлены на SQL Server с использованием sqlQuery () RODBC ()
- ERROR Истекло время ожидания ожидания SQL - какой тайм-аут это?
- Попытка подключения к серверу ODBC с использованием RODBC в ubuntu
«Чтобы управлять источником данных, который подключается к 32-разрядному драйверу под 64-разрядной платформой, используйте c: \ windows \ sysWOW64 \ odbcad32.exe. Для управления источником данных, который подключается к 64-разрядному драйверу, используйте c: \ windows \ system32 \ odbcad32.exe. В «Администрировании» в 64-разрядной операционной системе Windows 8 есть значки для 32-битного и 64-битного диалогового окна «Администратор источника данных ODBC».
Если вы используете 64-разрядный odbcad32.exe для настройки или удаления DSN, который подключается к 32-разрядному драйверу, вы получите следующее сообщение об ошибке:
Указанный DSN содержит несоответствие архитектуры между Драйвером и Приложением
Чтобы устранить эту ошибку, используйте 32-разрядный odbcad32.exe для настройки или удаления DSN.
Рекомендации
- Указанный DSN содержит несоответствие архитектуры между Драйвером и Приложением
- Управление источниками данных
Сторона Примечание. Убедитесь, что для всех объектов Copy Local
установлено значение True, даже для системных сборок. Я думаю, что проблема может быть из места сборки, сохраненного в GAC, поэтому при локальном копировании сборок она может исправить это