Блог им. alt

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

    • 10 февраля 2023, 20:35
    • |
    • alt
  • Еще

При запуске одного старого приложения (писалось под 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 комментариев
    Ну, первая  ошибка связана с тем, что программа не нашла используемый источник данных (адресация — по имени, которое в ошибке не указано), а вторая — что в базу MS Access пытаются записать значение, которое уже есть в столбце, который входит в «индекс, ключевых полях или связях». Сначала нужно разобраться с первой ошибкой, вторая — следствие. Если программа 32-битная — в C:\Windows\SysWoW64\odbcad32.exe должны быть такие же источники данных, которые есть и в C:\Windows\System32\odbcad32.exe (вот прям открываете оба администратора ODBC и копируете)
    avatar
    fr00m, Спасибо вам за помощь… Попробую -но с подобными задачами столкнулся впервые по жизни…
    avatar
    alt, это не задача, это гадание на кофейной гуще. Проблема либо в установщике программы (который либо не создал нужный источник данных, либо создал не там, где нужно), либо в самой программе, которая при отсутствующих данных из одного источника, пытается все-таки что-то куда-то записать (скорее всего, какие-то значения по умолчанию, которые когда-то уже записала). Если у Вас что-то получится — это будет чудо.
    avatar
    А перейти на 32-bit Win 10 не пробовали?
    avatar
    Indigo-On, Нет… Но в приведённом диалоге в посте чел столкнулся с похожей ошибкой работая в Win7...!?
    avatar
    alt, win 7 не показатель, тоже бывает 32 или 64 bit

    avatar
    alt, у вас какая версия виндоус и квика? На чем написан робот?
    avatar
    T-800, В теле поста писал Win64… Квик 7.27(посл версия 32)… Транслятор сделок из WL4 в Квик (mdb- написан давно- скорее 32..))…
    avatar
    Тут в пору решать, как на андройд перейти или линукс отечественный.
    avatar

    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.
    avatar
    Beach Bunny, Спасибо за развёрнутое разъяснение…
    Никогда не работал с базами… Попробую разобраться…
    avatar
    Beach Bunny, а если нет драйвера, где его можно скачать?
    avatar
    T-800, для 32бит драйвер для Access по умолчанию вместе с виндой стоит.
    А 64битный ставится вместе с офисом.
    avatar

    теги блога alt

    ....все тэги



    UPDONW
    Новый дизайн