Автор | Сообщение |
|
| |
Пост N: 299
Зарегистрирован: 08.04.06
|
|
Отправлено: 20.05.09 09:31. Заголовок: Что использовать вместо FERASE()
Потому что под NTями он работает некорректно (по крайней мере в Clipper'е): файл рушится, даже если он открыт на чтение и запись другой программой. Реальная ситуация: на сервере индекс открыт программой, работающей на компьютере-клиенте, а FERASE() в программе, работающей на сервере, его запросто убивает. Текст у меня общий для Clipper'а и xHarbour'а, поэтому хочется какой-либо одной функцией воспользоваться.
|
|
|
Ответов - 4
[только новые]
|
|
|
| |
Пост N: 1224
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.05.09 14:07. Заголовок: я конечно не знаю сп..
я конечно не знаю специфики твоей программы , но наверное проще будет если клиентская программа будет принимать решение , удалять файл или нет. если речь о сетевой программе тогда зачем удалять файлы используемые совместно по сети. если речь о временных клиентских файлах , тогда создавай их локально и убивай клиентской частью программы.
|
|
|
|
| |
Пост N: 143
Зарегистрирован: 28.06.05
|
|
Отправлено: 21.05.09 18:45. Заголовок: FUNC myFErase( cF ) ..
FUNC myFErase( cF ) LOCAL nH := FOpen( cF, FO_EXCLUSIVE ) If nH = -1 // Фикс для XP, умеющей удалять открытые файлы RETURN -1 Else FClose(nH) EndIF RETURN FErase( cF )
|
|
|
|
| |
Пост N: 300
Зарегистрирован: 08.04.06
|
|
Отправлено: 21.05.09 23:03. Заголовок: Re: Dima
Dima пишет: цитата: | зачем удалять файлы используемые совместно по сети |
| Dima, программа на сервере каждую загрузку пересоздаёт один или несколько индексов, в качестве борьбы с их периодическим обрушением в Clipper'е. И если на клиенте запустили программу раньше, чем на сервере, то получается вышеописанная бяка. А попытка удаления индексного файла как раз и показывала (до XP :-( можно ли пересоздать этот индекс (если файл спокойно удаляется - то можно)...
|
|
|
|
| |
Пост N: 301
Зарегистрирован: 08.04.06
|
|
Отправлено: 22.05.09 19:42. Заголовок: Re: SergeJa
SergeJa пишет: Спасибо, попробую.
|
|
|
|