Назад | Перейти на главную страницу

Не знаете, как создать соединение ODBC, по-видимому, у меня есть два отдельных файла odbcad32.exe?

Хорошо, я впервые работаю с этим, так что простите меня, если я немного запутался или расплывчато.

У меня есть сервер с Windows Server 2008 Standard без Hyper-v (6.0, Build 6002). Я запускаю небольшой веб-сайт с этого сервера и использую базу данных Microsoft Access для хранения некоторой информации, поступающей через веб-сайт. Я уверен, что PHP, который я написал для открытия соединения ODBC, правильный, поскольку он работал у меня, когда я создавал этот веб-сайт в тестовой среде на ноутбуке.

Моя текущая проблема заключается в том, что, похоже, у меня есть два разных файла odbcad32.exe, и у одного нет драйвера для файла .accdb, а есть только файл .mdb. У другого есть драйвер для обоих.

У первого, о котором я говорю, есть драйвер под названием «Драйвер для Microsoft Access (.mdb)», у второго - под названием «Драйвер Microsoft Access (.mdb, .accdb)». Я получаю доступ к первому odbcad32.exe, перейдя в C: \ Windows \ SysWOW64 \ odbcad32.exe, а затем к тому, у которого, кажется, есть нужный мне драйвер, я перехожу в Панель управления-> Администрирование-> Источники данных (ODBC) и просто создайте новое соединение во вкладке System DNS.

Всякий раз, когда я вношу изменения в тот, к которому я обращаюсь через панель управления, я не вижу изменений, однако, если я использую файл odbcad32.exe в SysWOW64, я получаю некоторые изменения в ошибках, которые возвращаются мне. Основное различие, которое я заметил, заключается в том, что когда я настраивал соединение ODBC с помощью метода панели управления, он сказал, что просто не может найти соединение ODBC, но когда я установил соединение .mdb в SysWOW64 (и указал его на файл. accdb файл) он говорит

Cannot open database '(unknown)'. It may not be a database that your application recognizes, or the file may be corrupt.

Из-за этого создается впечатление, что именно эта версия odbcad32.exe в SySWOW64 признается «правильной». Есть ли способ исправить это?

Я старался быть максимально подробным, но если я что-то запутал или упустил, дайте мне знать.

Исполняемый файл в system32 - это 64-битная версия, а копия в syswow64 - 64-битная версия. Каждый из них работает с разными наборами драйверов в зависимости от архитектуры исполняемого файла, который вы используете.

Версия, которую вы хотите запустить, зависит от архитектуры исполняемых файлов, которые должны загружать драйверы.

Чаще всего PHP работает как 32-битный процесс для CGI, но вам нужно дважды проверить свою среду и убедиться, что установлены соответствующие драйверы.