alt
alt личный блог
10 февраля 2023, 20:35

Нужна помощи спецов по СУБД - ODBC -Acces.....

При запуске одного старого приложения (писалось под 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 –вроде как далеко не лучшее решение- но пока других вариантов   нет..

 

15 Комментариев
  • fr00m
    10 февраля 2023, 20:50
    Ну, первая  ошибка связана с тем, что программа не нашла используемый источник данных (адресация — по имени, которое в ошибке не указано), а вторая — что в базу MS Access пытаются записать значение, которое уже есть в столбце, который входит в «индекс, ключевых полях или связях». Сначала нужно разобраться с первой ошибкой, вторая — следствие. Если программа 32-битная — в C:\Windows\SysWoW64\odbcad32.exe должны быть такие же источники данных, которые есть и в C:\Windows\System32\odbcad32.exe (вот прям открываете оба администратора ODBC и копируете)
      • fr00m
        10 февраля 2023, 22:18
        alt, это не задача, это гадание на кофейной гуще. Проблема либо в установщике программы (который либо не создал нужный источник данных, либо создал не там, где нужно), либо в самой программе, которая при отсутствующих данных из одного источника, пытается все-таки что-то куда-то записать (скорее всего, какие-то значения по умолчанию, которые когда-то уже записала). Если у Вас что-то получится — это будет чудо.
  • Indigo-On
    10 февраля 2023, 21:15
    А перейти на 32-bit Win 10 не пробовали?
      • Indigo-On
        10 февраля 2023, 21:52
        alt, win 7 не показатель, тоже бывает 32 или 64 bit

      • T-800
        11 февраля 2023, 03:54
        alt, у вас какая версия виндоус и квика? На чем написан робот?
  • bozon
    10 февраля 2023, 21:39
    Тут в пору решать, как на андройд перейти или линукс отечественный.
  • Beach Bunny
    10 февраля 2023, 22:05

    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.
    • T-800
      11 февраля 2023, 03:51
      Beach Bunny, а если нет драйвера, где его можно скачать?

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн