|
совместная работа
|
|||
---|---|---|---|
#18+
Есть необходимость одновременно работать с файлами dbf Clipper из программы на Клиппере и в VFP (В VFP только в режиме чтения) Не поделиться ли кто-нибудь процедурой, которая в программе на VFP: -определит, открыт ли файл программой на клиппере -если открыт, то с определенной периодичностью будет пытаться его открыть и выдавать сообщение с запросом либо пытаться продолжать открыть dbf либо прекратить попытки ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2010, 15:24 |
|
совместная работа
|
|||
---|---|---|---|
#18+
xvictor, а может, просто не открывать файл в эксклюзивном режиме? PS. я не знаю, умеет клиппер так делать или нет) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2010, 15:41 |
|
совместная работа
|
|||
---|---|---|---|
#18+
Клиппер тоже умеет открывать дбф-файлы в разных режымах (exclusive or shared) если клиппер открыл таблицу в Shared mode то проблем с доступом из Фокса не должно быть, ну может за исключением родных индексов клиппера (ntx), они Фоксом не поддерживаются ... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2010, 16:01 |
|
совместная работа
|
|||
---|---|---|---|
#18+
Если клиппер все-таки открывает таблицу в эксклюзивном режиме, то есть 2 варианта 1. Изменить программу на клиппере. 2. Открывать на фоксе таблицу . При открытии , естественно возникнет ошибка. номер ошибки - 1705 . нужно написать обработчик ошибок (например: функция которая задана в команде ON ERROR ) на обработку этой ошибки так , как вам нужно . ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2010, 16:13 |
|
совместная работа
|
|||
---|---|---|---|
#18+
1) При окрытии dbf из Clipper ВСЕГДА обнуляется кодовая страница в заголовке файла. Поэтому, при попытке открыть этот dbf из VFP фокс выдаст запрос на кодовую страницу. 2) Само собой индексы фокса (idx/cdx) несовместимы с индексами Clipper (ntx) . 3) У фокса и Clipper совершенно разные механизмы блокировки dbf (LOCK, RLOCK...). Файл, заблокированный клиппером, будет из VFP счиаться незаблокированным. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2010, 16:42 |
|
совместная работа
|
|||
---|---|---|---|
#18+
reware1) При окрытии dbf из Clipper ВСЕГДА обнуляется кодовая страница в заголовке файла. Поэтому, при попытке открыть этот dbf из VFP фокс выдаст запрос на кодовую страницу. SET CPDIALOG OFF и не будет никаких вопросов, только появятся проблемы с неправильной кодировкой. Если клиппер открывает таблицы монопольно, то тогда надо их копировать и с копиями работать, т.к. в фоксе откроешь - клиппер работать перестанет. Если клиппер в сетевом режиме работает, то Код: plaintext
ошибки можно ловить через TRY ... CATCH Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2010, 16:52 |
|
совместная работа
|
|||
---|---|---|---|
#18+
reware 3) У фокса и Clipper совершенно разные механизмы блокировки dbf (LOCK, RLOCK...). Файл, заблокированный клиппером, будет из VFP счиаться незаблокированным. По этому пункту проверил - файл , открытый клиппером (CA-Clipper 5.3d) в в эксклюзивном режиме, Фокс (VFP 8) открыть не может . По кодовой странице - диалог на установку в таблице кодовой страницы Фокс предлагает только при открытии таблицы в Exclusive Mode ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2010, 17:24 |
|
совместная работа
|
|||
---|---|---|---|
#18+
Olaf_Kreware 3) У фокса и Clipper совершенно разные механизмы блокировки dbf (LOCK, RLOCK...). Файл, заблокированный клиппером, будет из VFP счиаться незаблокированным. По этому пункту проверил - файл , открытый клиппером (CA-Clipper 5.3d) в в эксклюзивном режиме, Фокс (VFP 8) открыть не может . Открытие Exclusive и FLOCK()/RLOCK() - две большие разницы. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2010, 18:07 |
|
|
start [/forum/topic.php?fid=41&fpage=93&tid=1585116]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
188ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 348ms |
total: | 644ms |
0 / 0 |