Необходимо сделать выборку из dbf-файла, расположенного на сервере (\\server\folder\file.dbf).
проблема (похоже) в том, что сервер находится в другом домене (в соседней подсетке, с другим ip-адресом). Доступ в соседнюю подсеть - через роутер с трансляцией NAT. Доступ к папке на сервере - полный для "Все" (на вкладке "Безопасность" - тоже). При попытке установить соединение вылазит ошибка:
Цитата:[Microsoft][Драйвер ODBC dBase] Строка '(нет данных)' задает ошибочный путь. Проверьте, что путь задан правильно и имеется подключение к серверу, на котором находятся файлы.
Причем, на локальном компьютере и на сервере своей подсети соединение производится без проблем. Касперского глушил и на компе и на удаленном серваке - результат - тот же. При обычном просмотре сетевой папки (и при подключении сетевого диска) все смотрится прекрасно. Пробовал в строку прописывать путь через букву сетевого диска - результат тот же.
Поставил на этот удаленный сервак ftp-сервер. Набираю в папке адрес - отображается нужный каталог (ftp://server/folder/) с файлами. Пробую делать то же самое через odbc_connect - фиг вам.
Кроме того, для этого же случая не работают файловые функции file_open и file_exists. Похоже, механизм доступа используется один и тот же.
Пробовал решать проблему доступа к dbf-файлам на этом сервере путем установки на него MSSQL Express. Получилось, но приходится на MSSQL объявлять связанный сервер, через который, как через оболочку, идет запрос уже к локальным каталогам с dbf-базами, все работает, но этот связанный сервер блокирует монопольный доступ к dbf-файлам (необходимо для переодической переиндексации), а создавать его на время работы скрипта и потом гасить - не совсем разумный имхо вариант.
Есть ли у кого какие мысли по этому поводу?
PS: Тему создал сдесь, поскольку к базам она имеет такое же отношение, как и к файловому доступу.
|