Topic: Удаление DBImage(режим LinkFile) при удалении записи.
Пользовал поиск не нашёл ответа... Как удалить файл изображения из папки добавленный с помощью компонента DBImage работающего в режиме LinkFile при удалении записи?
My Visual Database → Russian → Удаление DBImage(режим LinkFile) при удалении записи.
Пользовал поиск не нашёл ответа... Как удалить файл изображения из папки добавленный с помощью компонента DBImage работающего в режиме LinkFile при удалении записи?
Приветствую.
Скачайте пожалуйста посделюю бета версию
https://www.dropbox.com/s/wutj7mnux7f3a … a.zip?dl=0
Сделал для вас проект с примером, чтобы файл изображения удалялся как при удалении записи, так и при удалении или изменении изображения на форме.
Подскажите пожалуйста. Пользуюсь вашим примером всё прекрасно работает в пределах одного компьютера. А при использовании программы в режиме локальной сети файлы добавляются в папку на сервере, но не удаляются. На данный момент рабочий вариант это запуск программы непосредственно из папки на сервере, но при множественном подключении бывают сбои.
К сожалению в настоящий момент нет доступа к локальной сети.
Как я понимаю, у вас свойство CopyTo компонента DBImage указывает не относительный, а абсолютный путь?
Тогда попробуйте в данном примере заменить
procedure Form1_bDelete_OnAfterClick (Sender: TObject);
begin
// remove file
DeleteFile(ExtractFileDir(Application.ExeName) + Form1.bDelete.TagString);
end;
на
procedure Form1_bDelete_OnAfterClick (Sender: TObject);
begin
// remove file
DeleteFile(Form1.bDelete.TagString);
end;
и
procedure frmEmployee_bSave_OnClick (Sender: TObject; var Cancel: boolean);
begin
if frmEmployee.DBImage1.dbImageIsChanged then // if picture is changed
begin
if frmEmployee.DBImage1.TagString <> frmEmployee.DBImage1.dbFileName then
DeleteFile(ExtractFileDir(Application.ExeName) + frmEmployee.DBImage1.TagString); // remove previous file
end;
end;
заменить на
procedure frmEmployee_bSave_OnClick (Sender: TObject; var Cancel: boolean);
begin
if frmEmployee.DBImage1.dbImageIsChanged then // if picture is changed
begin
if frmEmployee.DBImage1.TagString <> frmEmployee.DBImage1.dbFileName then
DeleteFile(frmEmployee.DBImage1.TagString); // remove prevous file
end;
end;
Спасибо. Подтверждаю работоспособность.
Подскажите пожалуйста. Использую метод добавления файлов к записи взятый в одном из примеров, так же там описан процесс удаления файла. Как удалять файлы в случае абсолютного пути?
Вот код из примера.
var
sDeletedFile: string;
procedure frmEmployee_bDeleteFile_OnClick (Sender: string; var Cancel: boolean);
begin
sDeletedFile := SQLExecute('SELECT file_filename FROM files WHERE id='+frmEmployee.TableGrid1.sqlValue);
sDeletedFile := ExtractFileDir(Application.ExeName) + sDeletedFile;
end;
procedure frmEmployee_bDeleteFile_OnAfterClick (Sender: string);
begin
DeleteFile(sDeletedFile);
end;
просто удалите эту строку
sDeletedFile := ExtractFileDir(Application.ExeName) + sDeletedFile;
My Visual Database → Russian → Удаление DBImage(режим LinkFile) при удалении записи.
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi