Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Использование прямых запросов FoxPro в модуле документа (число прочтений - 1759 )
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Использование прямых запросов FoxPro в модуле документа
27. Декабря 2008 :: 07:02
Печать  
Как известно, прямые запросы в модуле документа при использовании VFOledb появляется ошибка
Цитата:
FAILED! ICommandText::Execute(): File is in use by another user

что не позволяет использовать прямые в модуле документа.
uzhast даже исправлял драйвер для этого
http://uzhast.fatal.ru/vfpoledb/

Между тем, при подключении драйвера обычно стоит "Exclusive = No;" и 1С работает в разделенном режиме -
т.е. по идее - не должно по идее быть блокировок.

Причина оказалась достаточно банальной.
В FoxPro есть параметр Цитата:
SET TABLEVALIDATE TO [nLevel]

По умолчанию стоит nLevel = 3 (+1+2).
+1 означает "При проверке блокируется заголовок таблицы (.dbf). " во время открытия таблиц.

Т.е. действующая установка по умолчанию велит(!) блокировать заголовок при первом открытии таблиц.
Кстати, если хоть один запрос(к нужной таблице) выполнился успешно - проблем дальше нет.

Вся проблема решается установкой этого параметра в 0 после создания OLEDBDATA - не проводить проверку при открытии таблиц.

Или в коде 1С
Код
Выбрать все
ОледбКоманда=глОлеДБ.СоздатьКоманду();// После создания и подключения глОлеДБ
ОледбКоманда.Выполнить("Exec('SET TABLEVALIDATE TO 0')");// Отключили блокировки 



Также по сообщению hogik
http://infostart.ru/profile/2905/blogs/482/index.php?p=2&cp=all&id=482%2F%3Fcp%3...
сообщение 28
Цитата:
Но, пока, мне не удаётся нормально запустить “патченный драйвер”. Несколько раз запрос успешно выполнился. Потом я стал запускать запрос с параллельным обновлением таблицы. И с какого то момента стало вылетать сообщение:
…FAILED! ICommandText::Execute(): Undefined critical error!
Вернулся на исходный драйвер – работает. Базу данных восстановил – не помогло… Печаль

т.е. использование патченного драйвера может привести к критическим ошибкам, если другой пользователь
производит обновление таблицы, при использовании родного драйвера все ОК.


« Последняя редакция: 28. Декабря 2008 :: 10:27 - kiruha »  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать