Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / совместная работа / 8 сообщений из 8, страница 1 из 1
13.07.2010, 15:24
    #36738623
xvictor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
совместная работа
Есть необходимость одновременно работать с файлами dbf Clipper из программы на Клиппере и в VFP
(В VFP только в режиме чтения)
Не поделиться ли кто-нибудь процедурой, которая в программе на VFP:
-определит, открыт ли файл программой на клиппере
-если открыт, то с определенной периодичностью будет пытаться его открыть и выдавать сообщение с запросом либо пытаться продолжать открыть dbf либо прекратить попытки
...
Рейтинг: 0 / 0
13.07.2010, 15:41
    #36738688
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
совместная работа
xvictor, а может, просто не открывать файл в эксклюзивном режиме?
PS. я не знаю, умеет клиппер так делать или нет)
...
Рейтинг: 0 / 0
13.07.2010, 16:01
    #36738760
Olaf_K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
совместная работа
Клиппер тоже умеет открывать дбф-файлы в разных режымах (exclusive or shared)

если клиппер открыл таблицу в Shared mode то проблем с доступом из Фокса не должно быть, ну может за исключением родных индексов клиппера (ntx), они Фоксом не поддерживаются ...
...
Рейтинг: 0 / 0
13.07.2010, 16:13
    #36738804
Olaf_K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
совместная работа
Если клиппер все-таки открывает таблицу в эксклюзивном режиме, то есть 2 варианта
1. Изменить программу на клиппере.
2. Открывать на фоксе таблицу . При открытии , естественно возникнет ошибка.
номер ошибки - 1705 . нужно написать обработчик ошибок (например: функция которая задана в команде ON ERROR ) на обработку этой ошибки так , как вам нужно .
...
Рейтинг: 0 / 0
13.07.2010, 16:42
    #36738891
reware
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
совместная работа
1) При окрытии dbf из Clipper ВСЕГДА обнуляется кодовая страница в заголовке файла. Поэтому, при попытке открыть этот dbf из VFP фокс выдаст запрос на кодовую страницу.
2) Само собой индексы фокса (idx/cdx) несовместимы с индексами Clipper (ntx) .
3) У фокса и Clipper совершенно разные механизмы блокировки dbf (LOCK, RLOCK...). Файл, заблокированный клиппером, будет из VFP счиаться незаблокированным.
...
Рейтинг: 0 / 0
13.07.2010, 16:52
    #36738937
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
совместная работа
reware1) При окрытии dbf из Clipper ВСЕГДА обнуляется кодовая страница в заголовке файла. Поэтому, при попытке открыть этот dbf из VFP фокс выдаст запрос на кодовую страницу.
SET CPDIALOG OFF и не будет никаких вопросов, только появятся проблемы с неправильной кодировкой.

Если клиппер открывает таблицы монопольно, то тогда надо их копировать и с копиями работать, т.к. в фоксе откроешь - клиппер работать перестанет.
Если клиппер в сетевом режиме работает, то
Код: plaintext
use ClipperTable shared
и то только для чтения, т.к. если фокс чего-то поправит, то у клиппера индексы могут перестать соответcтвовать данным.

ошибки можно ловить через TRY ... CATCH
Код: plaintext
1.
2.
3.
4.
TRY
   use ClipperTable shared
CATCH
  ? 'Не открылась ClipperTable'
ENDTRY
...
Рейтинг: 0 / 0
13.07.2010, 17:24
    #36739044
Olaf_K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
совместная работа
reware
3) У фокса и Clipper совершенно разные механизмы блокировки dbf (LOCK, RLOCK...). Файл, заблокированный клиппером, будет из VFP счиаться незаблокированным.

По этому пункту проверил - файл , открытый клиппером (CA-Clipper 5.3d) в в эксклюзивном режиме, Фокс (VFP 8) открыть не может .

По кодовой странице - диалог на установку в таблице кодовой страницы Фокс предлагает только при открытии таблицы в Exclusive Mode
...
Рейтинг: 0 / 0
13.07.2010, 18:07
    #36739160
reware
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
совместная работа
Olaf_Kreware
3) У фокса и Clipper совершенно разные механизмы блокировки dbf (LOCK, RLOCK...). Файл, заблокированный клиппером, будет из VFP счиаться незаблокированным.

По этому пункту проверил - файл , открытый клиппером (CA-Clipper 5.3d) в в эксклюзивном режиме, Фокс (VFP 8) открыть не может .

Открытие Exclusive и FLOCK()/RLOCK() - две большие разницы.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / совместная работа / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]