![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не копируется открытый файл DBF [D7, dBase, FoxPro]
kyn66 © (2009-01-22 11:59:00)Уважаемые мастера, подскажите в чем проблема и как ее решить. На сервере лежат БД программы . Программа открывает базы для работы. В среде TotalCommander я этот файл спокойно могу копировать на другой диск. Внутри своей программы пытаюсь копировать - выдает ошибку, точнее не копирует, а последующее обращение к якобы скопированному файлу вадает ошибку, т.к. файла то нет. Копируб так:
CopyFile(DM1.AdsConnection3.ConnectPath + '\skod.dbf', TempDir + 'skod.dbf', nil);
KSergey (2009-01-23 11:00:00) [1]хоть беда и решена.
беда не в потоках (да и сила не в них)
Беда в том с какими опциями открывать исходный файл.
Очевидно надо открывать с минимальными достаточными, т.е. "только чтение" + "шредный доступ" (не эксклюзивно).
По умолчанию файл открывается эксклюзивно, но та прога его уже открыла, но она добрая и открыла шаредно, т.е. нам надо поступить так же.
Anatoly Podgoretsky (2009-01-23 10:02:00) [2]
> да и вообще при копировании открытых на запись файлов их
> состояние неизвестно, так зачем нужны эти
> Все, решение найдено, копирование через потоки
Аминь
kyn66 (2009-01-22 12:55:00) [3]Все, решение найдено, копирование через потоки.
Правильный$Вася (2009-01-22 12:51:00) [4]
> Про возвращаемые параметры я в курсе.
что-то не видно, чтоб ты анализировал результат
да и вообще при копировании открытых на запись файлов их состояние неизвестно, так зачем нужны эти недобитки?
Плохиш (2009-01-22 12:51:00) [5]
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Там написана причина.
Хотя, судя по
> а последующее обращение к якобы скопированному файлу вадает
> ошибку
утверждение
Про возвращаемые параметры я в курсе.
является ни чем иным, как "слышал звон, а не знаешь, где он"...
kyn66 (2009-01-22 12:22:00) [6]>2Правильный$Вася
Ну и к чему это? Про возвращаемые параметры я в курсе.
Правильный$Вася (2009-01-22 12:15:00) [7]
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.