Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Блокировка таблиц драйвером FoxPro для DBF (число прочтений - 2780 )
Dr. DelProg
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 22. Мая 2010
Блокировка таблиц драйвером FoxPro для DBF
22. Мая 2010 :: 15:37
Печать  
"Вообще, Fox не может вытащить данные потому, что пытается заблокировать таблицу перед чтением. Если 1С ее занимает, то блокировка не удается. Из-за этого, в частности, прямые запросы не работают, если пытаются вытащить данные из регистра, по которому в текущий момент проводится документ.
<...> Fox при выполнении запроса блокирует таблицу. Соответственно, если вдруг кто-то захочет провести документ по регистру, по которому формируется запрос, то его ждет облом. Что при этом будет с 1С - не знаю, но для 1С это явно будет нештатная ситуация.<...>"
(c) Документация 1С++, раздел "Учебник/Эффективное использование MSSQL при помощи ВК 1С++".

Вопрос к тем кто использовал 1срр на DBF-базах: вызывало ли подобное поведение драйвера FoxPro ощутимые проблемы в работе и на сколько серьезные? Как решали? (про "патч" для драйвера комментарий тоже прочитал - не нравится такой вариант из-за "Естественно, такой драйвер нельзя использовать для записи данных в таблицу ДБФ - можно обгадить базу." (с) Uzhast)

Сам лишь присматриваюсь к 1С++ и пытаюсь на деле применить ее преимущества, т. к. сам уже давно стараюсь по максимуму работать на v8, и программить под 7.7 стало очень тоскливо, но все еще приходится.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Блокировка таблиц драйвером FoxPro для DBF
Ответ #1 - 22. Мая 2010 :: 16:00
Печать  
А ты еще и писать напрямую в таблички хочешь? Зачем?

Еще можно воспользоваться 1sqlite - таам такой проблемы нет (но она вообще писать в ДБФ не умеет)
  
Наверх
 
IP записан
 
Dr. DelProg
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 22. Мая 2010
Re: Блокировка таблиц драйвером FoxPro для DBF
Ответ #2 - 23. Мая 2010 :: 19:37
Печать  
Ладно, думаю не критично - вопрос стоит в формировании одного отчета пока-что, да и пользователей всего 3 Улыбка Ну если будут проблемы - будем решать через СкуЛайт
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: Блокировка таблиц драйвером FoxPro для DBF
Ответ #3 - 24. Мая 2010 :: 07:21
Печать  
JohnyDeath писал(а) 22. Мая 2010 :: 16:00:
А ты еще и писать напрямую в таблички хочешь? Зачем?

Еще можно воспользоваться 1sqlite - таам такой проблемы нет (но она вообще писать в ДБФ не умеет)

Добавлю - писать даже через непатченный драйвер фокса - небезопасно.
Если только в монополе с последующей переиндексацией.
  
Наверх
 
IP записан
 
Dr. DelProg
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 22. Мая 2010
Re: Блокировка таблиц драйвером FoxPro для DBF
Ответ #4 - 24. Мая 2010 :: 07:33
Печать  
Да писать, собственно, не собираюсь пока... Но возможность не исключаю.
И, кстати, я правильно понял, что ключевое слово NOLOCK - это только для MSSQL актуально?
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Блокировка таблиц драйвером FoxPro для DBF
Ответ #5 - 24. Мая 2010 :: 12:02
Печать  
FoxPro не блокирует базу, если подключаешь
     |Exclusive = No;

FoxPro по умолчанию при первом чтении проверяет заголовок таблиц - и блокирует их.
Можно легко отключить

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

Писать действительно FoxPro не надо - сортировка немного отличается от 1С - летят индексы
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать