Страница 1 из 1

Удаление tps файла базы данных

Добавлено: 04 Октябрь 2023, 12:31
gopstop2007
Не получается удалить файл tps, при работе с БД.
Необходимо удалить данные, заменив их на новые с сервера.

Код: Выделить всё

Access:MyFile.Close

REMOVE(MyFile)
IF ERROROCODE() THEN STOP(ERROR()) END

Access:MyFile.Open
Данный код выдает ошибку, что - файл уже открыт :(
Заменял Access: на Relate: результат тот же.
Как корректно удалить или создать новый файл, при открытой БД ?

Clarion 10 ABC

Удаление tps файла базы данных

Добавлено: 04 Октябрь 2023, 14:24
ingasoftplus
зачем удалять физически? потом же его надо создавать и т.п.

используйте

Код: Выделить всё

EMPTY(myfile)
см F1

Удаление tps файла базы данных

Добавлено: 04 Октябрь 2023, 15:53
Губин Игорь
Remove требует полного закрытия файла через Close и гарантии, что никто его не открывает.

Удаление tps файла базы данных

Добавлено: 04 Октябрь 2023, 20:26
Игорь Столяров
Низя удалять любой открытый на запись файл в любой программе Windows.
Здесь вопрос культуры доступа к данным.

Если Вы контролируете где и в каком режиме открываются TPS списки - то
при отсутствии монопольного захвата можно просто выполнить очистку:

Код: Выделить всё

        Lock(MyFile)
        If Not ErrorCode() then Empty(MyFile); UnLock(MyFile).
        
        If Records(MyFile) = 0
           ЗАПОЛНЯЕМ ФАЙЛ НОВЫМИ ДАННЫМИ
        end   

Удаление tps файла базы данных

Добавлено: 04 Октябрь 2023, 21:16
gopstop2007
ingasoftplus писал(а): 04 Октябрь 2023, 14:24 используйте

Код: Выделить всё

EMPTY(myfile)
см F1
Большое спасибо.
Игорь Столяров писал(а): 04 Октябрь 2023, 20:26 Если Вы контролируете где и в каком режиме открываются TPS списки - то
при отсутствии монопольного захвата можно просто выполнить очистку:

Код: Выделить всё

        Lock(MyFile)
        If Not ErrorCode() then Empty(MyFile); UnLock(MyFile).
        
        If Records(MyFile) = 0
           ЗАПОЛНЯЕМ ФАЙЛ НОВЫМИ ДАННЫМИ
        end   
Попробовал, работает, большое спасибо.