Ошибка функции php5 odbc_connect () при подключении к таблице Visual FoxPro9 - PullRequest
2 голосов
/ 05 апреля 2011

Я запускаю php5 на сервере Ubuntu10.10, где уже установлены пакеты unixODBC и php5-odbc.Я получаю сообщение об ошибке во время процесса подключения - код:

$data_source = 'DRIVER={Microsoft dBASE Driver (*.dbf)};Data Source=//128.251.xxx.xxx/lv_apps/AppsLON/CData/dbf/cdma';"", "");
$conn = odbc_connect($data_source, "", "");
if (!$conn)
    exit("Connection Failed: " .$conn );

сообщение об ошибке:

1 Warning: odbc_connect(): SQL error: [unixODBC][Driver Manager]Data source name not found, and no default driver specified, SQL state IM002 in SQLConnect in /var/www/vfptest.php on line 6 

Я добавил extention=dbase.so и extention=odbc.so в оба файла: /etc/php5/apache2/php.ini и/etc/php5/cli/php.ini и перекомпилировал установку php с помощью:

sudo ./configure --prefix=/usr --enable-dbase=shared --with-unixODBC

Я также пошел на unixODBC и pecl для установки библиотек unixODBC и dbase по отдельности, но не повезло.нашел эту ссылку: http://www.devlist.com/ConnectionStringsPage.aspx, где указано, что для создания соединения ODBC с базой данных foxpro я использую строку:

Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDB=c:\demo.dbc;Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO 

, однако, это все равно не работает для меня;вероятно, потому что у меня не установлен драйвер visual foxpro или мой файл odbc.ini, указывающий путь к драйверу ... но я не знаю.

Ответы [ 3 ]

1 голос
/ 05 апреля 2011

Короче - odbc_connect () берет; Имя источника данных ODBC (DSN), Имя пользователя и Пароль согласно -

http://php.net/manual/en/function.odbc-connect.php

Насколько мне известно, для Linux нет драйвера VFP ODBC, поэтому вам, скорее всего, потребуется использовать решение ODBC Bridge, например -

http://uda.openlinksw.com/odbc-odbc-mt/

Это имеет клиент-серверную архитектуру -

Клиент Linux - Приложение php ODBC Общий драйвер ODBC OpenLink (тонкий многоуровневый клиент ODBC)

Windows-сервер - OpenLink Request Broker (многоуровневый сервер) Агент OpenLInk для ODBC (многоуровневый сервер) Fox Pro ODBC DSN (предварительно настроенный) Файлы Fox Pro ...

Надеюсь, это поможет?

1 голос
/ 06 апреля 2011

Проверьте самый нижний конец этой темы в сети MSDN

отправленная вами строка драйвера: "... строка подключения ODBC, которая не поддерживается для таблиц VFP, имеющихверсия более поздняя, ​​чем 6 ".

0 голосов
/ 05 апреля 2011

Хотя он не знаком с подключением linux к VFP, однако соединения odbc для такого VFP подключаются к PATH, а не к определенной таблице.После того, как соединение с PATH установлено, ТОГДА вы можете запросить любую таблицу .DBF в этом месте.

Хотя я не могу ответить на ваши конкретные данные о соединении, я нашел эту ссылку

http://www.phpfreaks.com/forums/index.php?topic=296832.0

, показывающий подключение к источнику данных ... обратите внимание, что он идентифицирует 'DRIVER = {Microsoft dBASE Driver (* .dbf)}; datasource = / home / dir / file.dbf;'используется ... Возможно, вам придется использовать комбинацию этого драйвера и информации о пути (я все же попробую БЕЗ конкретного файла .dbf в первую очередь).

Надеюсь, это поможет ..

...