Недавно я получил задание создать приложение PHP, которое подключается к удаленному драйверу ODBC. Мы получили драйвер ODBC и настроили тестовую среду.
Поскольку я впервые работаю с драйверами ODBC, я понятия не имею, что делать, чтобы иметь возможность подключиться к драйверу. Я знаю код, и мне удалось подключиться к драйверу ODBC, используя PHP и DSN на локальном компьютере. Но поскольку мне приходится подключаться с удаленного компьютера, используя подключение без DSN, я считаю, что это уже не так просто.
Драйвер ODBC является настраиваемым (PARKWAY ConnectWare для файлов Micro Focus), и мы не получили для него документацию (только описание параметра строки подключения, которое было полезно, но недостаточно для решения нашей проблемы). Гугл тоже не помог, ничего не нашли.
Кто-нибудь знает, что еще нужно для удаленного подключения к драйверу ODBC? Логически логично, что одного драйвера не хватило, возможно какой-то сервер ...
Буду благодарен за любой толчок в правильном направлении :)
ОБНОВИТЬ:
Служба поддержки PARKWAY ответила мне строкой подключения и основной информацией. Мой первый инстинкт был правильным - чтобы иметь возможность подключиться к драйверу ODBC на удаленной машине, мне нужно их серверное приложение. Я уже установил их пробную версию сервера и сегодня немного поиграю с ней. Они предложили следующую строку подключения:
Driver=PARKWAY ConnectWare for Micro Focus Files;DBQ=D:\MyServerData;Layout=Version3;FileType=Micro Focus;Location=MyServer
На этот раз мне удалось получить другую ошибку при попытке подключения:
SQL error: Failed to fetch error message
Но я полагаю, что это проблема кода.
Спасибо за все полезные комментарии, наконец-то я разобрался :)
Если кто-то борется с подобной проблемой, вот как я это сделал:
Сначала обратился в службу поддержки. Если вы застряли с необычным программным обеспечением, обращение в службу поддержки обычно является первым шагом, который вам следует сделать. Обычно у них есть правильные ответы.
Драйвер ODBC - это то, что следует из его названия, драйвер и не более того. Для любого удаленного доступа нужен какой-то сервер. Кроме того, если вы хотите получить доступ к удаленному источнику данных, вам понадобится драйвер, установленный на вашем клиентском компьютере (компьютере, на котором будет работать ваше удаленное приложение).
Все идет нормально. В моем случае я получил описание параметра подключения от их службы поддержки, но все еще не мог понять, как выглядит строка подключения. Я перепробовал все, но ничего не вышло (у меня были странные ошибки, которые не очень помогли, например, «не удалось получить сообщение об ошибке»).
Наконец я нашел ответ в этом посте: dsn-to-connectionstring
Похоже, что записи DSN - это не что иное, как пары имя-значение. Подключение к источнику данных с помощью DSN работало, но я не мог использовать DSN в моем конкретном случае. Итак, я получил необходимые параметры, открыв REGEDIT и, как было предложено в сообщении выше, открыв расположение System DSN:
HKLM\Software\Wow6432Node\ODBC\ODBC.INI\
Это место, где хранятся записи 32-битного системного DSN. Если вам нужно найти 64-битную версию, она находится здесь:
HKLM\Software\ODBC\ODBC.INI\
Конечно же, был необходимый мне системный DSN. Если кому-то интересно, почему я до сих пор не знал, как выглядит строка подключения, хотя у меня было описание параметра строки подключения:
Чтобы иметь возможность подключиться к удаленному серверу, мне пришлось добавить параметр «Местоположение» в строку подключения. Я попытался добавить URL-адрес и / или IP-адрес серверной машины, но это не сработало. Посмотрев на реестр, я обнаружил, что мне действительно нужно добавить IP, порт и протокол в файл конфигурации, специфичный для этого драйвера ODBC. Для атрибута «location» внутри строки подключения мне пришлось указать имя добавленной мной конфигурации.