При запуске одного старого приложения (писалось под 32 ось и лезть внутрь нет возможности ( сейчас Win10 -64 Квик 32- сознательно а не 64 ) Вылетает ошибка-
Ошибка Login System.Data.Odbc.OdbcException: ERROR [IM002] [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
в System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
и в Квике следующее сообщение-
[Microsoft][Драйвер ODBC Microsoft Access] Изменения не были успешно внесены из-за повторяющихся значений в
индексе, ключевых полях или связях. Измените данные в поле или полях, содержащих повторяющиеся значения, удалите индекс или переопределите его, чтобы разрешить повторяющиеся значения, и повторите попытку.
SQLSTATE=23000
Код ошибки=-1605
Ниже вроде близкая тема обсуждалась на форуме разработчика Квика.
При этом приложение как то всё же работает!..
Цитата 1:
Разница заключается в их нелогичном расположении каталога — System32 (для 64-разрядных компонентов) и SysWow64 (для 32-разрядных компонентов).«О запуске odbcad32.exe для отображения окна источников данных ODBC стало очевидно, что команда панели управления запускает 64-разрядную версию в System32\, несмотря на метку источники данных ODBC (32 бит)».
Цитата 2:
Windows выполняет магическое перенаправление в зависимости от разрядности запущенной программы. 64-разрядная программа получает DLL из C: \ Windows \ system32, а 32-разрядная программа получает ее из C: \ Windows \ SysWoW64.
Выходит, что мне 64 выдает ошибку что нет драйверов, а 32 спокойно регистрирует, но ее не видит 64 QUIK?!
Может кто из спецов СУБД , ODBC –Acces – подскажет что не так и что можно исправить!?
ODBC-Acces –вроде как далеко не лучшее решение- но пока других вариантов нет..
C ODBC все работает так(на любой OS, есть некоторые ньюансы на macOS)
Если программа 32бит то нужен 32бит ODBC драйвер
Если программа 64бит то нужен 64бит ODBC драйвер
На 64бит Win можно использовать любые ODBC драйвера и 32бит и 64бит
В Win64:
ODBC менеджер для 32бит => %windir%\syswow64\odbcad32.exe
ODBC менеджер для 64бит => %windir%\system32\odbcad32.exe
Запускаешь 32бит ODBC и смотришь в списке драйверов есть ли там драйвер для Access, для 32бит это обычно имеет имя файла ODBCJT32.DLL .
Для проверки что он действительно корректно установлен, можешь попробовать создать новый DSN для Access, если создается то все Ok.
Ну если используешь конкретный DSN, то проверяешь его наличие в списках DataSources.
Никогда не работал с базами… Попробую разобраться…
А 64битный ставится вместе с офисом.