Конфликты Ado

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
И снова всем привет!
У меня очередной вопрос. Но сначала прелюдия :blink:
Есть функция в библиотеке, эта функция вызывается в 2-х агентах. Функция работает с XLS-файлом(файл один и тот же для обеих агентов) через ADO (только читаю)
Есть момен что агенты могут обращаться к файлу одновременно и вываливается вот такая ошибка
Error (201 ) -> Operation is disallowed in this session
Как ее побороть и чтоб все работало?
 
Y

Yakov

Не давайте двум агентам работать с файлом одновременно. :)
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Ну это и так понятно.
А интересней предложений нет?
 
K

Kee_Keekkenen

напишите простенькую функцию, которая перед открытием проверяла бы открыт файл или нет..
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
просто вот какой интересный нюанс... процедура доступа одна и та же... и в ней все объекты по завершению работы освобождаются. Тогда вопрос, откуда может появляться данный конфликт?
Сегодня, кстати, новая ошибка
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
 
S

SkinGreek

Чесно говоря не помню может ли адо открывать файлы в оптимистичной блокировке. Но уверен что дело в ней. Попробуйте настроить RS при открытии в оптимистичную блокировку, и желательно сказать RS что вы его пользуете только для чтения.
О настроуке LockType моно посмотреть
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Дело в том, что ругается не рекордсет, а само соединение... до рекордсета даже не доходит
 
S

SkinGreek

значит соединение настроено как эксклюзивное.
попробуйте настроить
Но повторюсь, я не знаю поддерживает ли драйвер соединения с XLS-файлом это режим.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!