ОБСУЖДЕНИЕ

Конфликты Ado

7 ответов 4,8 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
И снова всем привет!
У меня очередной вопрос. Но сначала прелюдия :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 моно посмотреть тут
 
Дело в том, что ругается не рекордсет, а само соединение... до рекордсета даже не доходит
 
значит соединение настроено как эксклюзивное.
попробуйте настроить cnn.Mode=adModeRead
Но повторюсь, я не знаю поддерживает ли драйвер соединения с XLS-файлом это режим.
 

Статистика тем

Создано
NickProstoNick,
Последний ответ от
SkinGreek,
Ответы
7
Просмотры
4 842