Конфликты Ado

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
И снова всем привет!
У меня очередной вопрос. Но сначала прелюдия :blink:
Есть функция в библиотеке, эта функция вызывается в 2-х агентах. Функция работает с XLS-файлом(файл один и тот же для обеих агентов) через ADO (только читаю)
Есть момен что агенты могут обращаться к файлу одновременно и вываливается вот такая ошибка
Error (201 ) -> Operation is disallowed in this session
Как ее побороть и чтоб все работало?
 
Не давайте двум агентам работать с файлом одновременно. :)
 
Ну это и так понятно.
А интересней предложений нет?
 
напишите простенькую функцию, которая перед открытием проверяла бы открыт файл или нет..
 
просто вот какой интересный нюанс... процедура доступа одна и та же... и в ней все объекты по завершению работы освобождаются. Тогда вопрос, откуда может появляться данный конфликт?
Сегодня, кстати, новая ошибка
Microsoft JET Database Engine: The Microsoft Jet database engine cannot open the file. It is already opened exclusively by another user, or you need permission to view its data
 
Чесно говоря не помню может ли адо открывать файлы в оптимистичной блокировке. Но уверен что дело в ней. Попробуйте настроить RS при открытии в оптимистичную блокировку, и желательно сказать RS что вы его пользуете только для чтения.
О настроуке LockType моно посмотреть
 
Дело в том, что ругается не рекордсет, а само соединение... до рекордсета даже не доходит
 
значит соединение настроено как эксклюзивное.
попробуйте настроить
Но повторюсь, я не знаю поддерживает ли драйвер соединения с XLS-файлом это режим.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab