Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема FAILED! ICommandText::Execute(): File is in use by another user (число прочтений - 2207 )
yhvvh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 01. Сентября 2009
FAILED! ICommandText::Execute(): File is in use by another user
03. Сентября 2009 :: 06:13
Печать  
база дбф сразу скажу

выдает не всегда на обчном селекте с джойнами

читал что ошибка присуща только для модуля документа но у меня форма внешней обработки, которой пользуються пользователи, время от времени появляются такое сообщение.
  
Наверх
 
IP записан
 
yhvvh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 01. Сентября 2009
Re: FAILED! ICommandText::Execute(): File is in use by another user
Ответ #1 - 03. Сентября 2009 :: 06:15
Печать  
может кто объеснит рприроду происходящего
  
Наверх
 
IP записан
 
yhvvh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 01. Сентября 2009
Re: FAILED! ICommandText::Execute(): File is in use by another user
Ответ #2 - 03. Сентября 2009 :: 06:16
Печать  
строка соеденения
Соединение = "Provider=VFPOLEDB.1;Data Source=" + КаталогИБ() + ";Mode=Read;Collating Sequence=MACHINE";
     DB = СоздатьОбъект("OLEDBData");
     Рез = DB.Соединение(Соединение);
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: FAILED! ICommandText::Execute(): File is in use by another user
Ответ #3 - 03. Сентября 2009 :: 06:50
Печать  
Скорее всего табличка попала в транзакцию. Т.е. другой пользователь в этот момент проводит документ и т.о. блокирует всю табличку журнала и регистров, по которому делает движения.
  
Наверх
 
IP записан
 
yhvvh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 01. Сентября 2009
Re: FAILED! ICommandText::Execute(): File is in use by another user
Ответ #4 - 03. Сентября 2009 :: 06:57
Печать  
а выход есть?
  
Наверх
 
IP записан
 
yhvvh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 01. Сентября 2009
Re: FAILED! ICommandText::Execute(): File is in use by another user
Ответ #5 - 03. Сентября 2009 :: 07:08
Печать  
да ты прав действительно при проведенииидок блокируется остатки и моя обработка залипает и вываливается в ошибку, но мне нужно просто select сделать ни как нельзя избежать проблемы?
  
Наверх
 
IP записан
 
yhvvh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 01. Сентября 2009
Re: FAILED! ICommandText::Execute(): File is in use by another user
Ответ #6 - 03. Сентября 2009 :: 07:17
Печать  
Вот вычитал вроде помогает.
ни очень понял какие блокировки отключаются
но как понял если таблица заблокирована 1с пользователем
то фокспро перед выполнением обычным селектом всеравно пытается заблокировать заголовки таблицы, и получает ответ отрицательный а спомощью этого параметра  он не блокиурет.

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

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

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

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

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

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать