Всем привет! Подозреваю, у меня редкий диагноз, но вдруг у кого будет идея? Имеем: Zend Server community edition (PHP Version 5.3.1), odbcjt32.dll 4.00.6305.00 (WinXP), Файл \\xxx.xxx.x.x\database\db.mdb. Win-сервис на PHP, раз в минуту подключается к БД и обрабатывает данные. Получение данных - без вопросов. Сразу скажу: таких сервисов у меня 15, в т.ч. ещё 1 работает с БД Access, и 1 - с двоичными файлами, тоже на удаленном ресурсе. Только здесь связь похуже, через VDSL, и ВОТ: при первой же сетевой ошибке драйвер Access тупеет напрочь и навсегда, лечится только перезапуском сервиса (хотя в каждом цикле есть odbc_close). Т.е. подключение продолжает работать, а данные недоступны. Никаких ошибок в логах. Получается, надо как-бы давать драйверу хорошего пинка, но для этого нет средств. А програмка там чужая, и перевод на нормальную СУБД пока под вопросом. И вот что подозрительно: семафор .ldb не удаляется и не изменяется после odbc_close, а только после остановки сервиса (так же и в другой БД Access). Как будто odbc_close тут не работает воще, потому и ошибка остаётся навсегда. Пробовал включить протокол ODBC, почитал php_fcgi_err. Действительно, нашёл: ld_sovtigas 17c8-1130 EXIT SQLExecDirect with return code -1 (SQL_ERROR) HSTMT 034C21C0 UCHAR * 0x03A592E8 [ -3] "SELECT abspress FROM rateminute WHERE record_time =1300439340\ 0" SDWORD -3 DIAG [S1000] [Microsoft][Драйвер ODBC Microsoft Access] Дисковая или сетевая ошибка. (-1022) После этого работа продолжается как ни в чём не бывало (SQL_SUCCESS при всех действиях), а запрос данных даёт: DIAG [S0002] [Microsoft][Драйвер ODBC Microsoft Access] Ядро базы данных Microsoft Jet не может найти входную таблицу или запрос 'rateminute'. Проверьте существование таблицы или запроса и правильность имени. (-1305)