Topic: Прошу помощи со скриптом

Есть скрипт для открытия файла по двойному клику на таблицу. При этом файл автоматически копируется в указанную мной папку. Как сделать так,чтобы при удалении записи из таблицы,файл который скопировался в папку автоматически удалился?

П.с. код нашел на форуме

procedure Anketa_OnShow (Sender: string; Action: string);
begin
    Anketa.TableGrid1.dbPopupMenu.Items.Items[0].Enabled:= False;
end;

procedure Anketa_OnDoubleClick (Sender: string);
var
   FileName: string;
begin
    FileName:= SQLExecute ('Select file_filename From Anketa Where id='+Anketa.TableGrid1.sqlValue);
    FileName:= ExtractFileDir (Application.ExeName)+FileName;
    if FileExists (FileName) then OpenFile (FileName);
end;

Также в компоненте DBFile в свойстве CopyTo указываю папку куда будет копироваться файл (в моем случае в папку files)

2 (edited by sibprogsistem 2021-10-02 11:22:04)

Re: Прошу помощи со скриптом

DeleteFile(FileName);

Re: Прошу помощи со скриптом

sibprogsistem wrote:

DeleteFile(FileName);

Эта команда просто удаляет файл,а мне нужно немного другое.
Есть сотрудники, по каждому сотруднику есть его личная анкета,которая я цепляю в DBFile...файл надо удалить только если сотрудник уволился например и вся информация про него удаляется из таблицы..

Re: Прошу помощи со скриптом

Если я правильно понял, у вас файлы хранятся не в базе, а в папке, указанной в настройке. Это все хорошо только в случае, если у вас имена хранимых файлов уникальны. Если у вас имена файлов уникальны, тогда вы можете добавить два обработчика на кнопку, которая удаляет сотрудника.


OnClick  - вытащить имя удаляемого файла из базы, как указано в вашем примере, с учетом того, что к имени файла из базы нужно добавить ваш путь хранения

FileName:= SQLExecute ('Select file_filename From Anketa Where id='+Anketa.TableGrid1.sqlValue);
FileName:= ExtractFileDir (Application.ExeName)+'\files\'+FileName;

OnAfterClick - удалить файл командой, указанной sibprogsisten


DeleteFile(FileName);

Переменную FileName объявите  глобальной.

Визуальное программирование: блог и телеграм-канал.