procedure TEditInDocForm.ButtonSaveImageClick(Sender: TObject);
begin
SavePictureDialog.FileName := (IODocsDataModule.INDOCSIBTable.fieldbyname('IMAGEFNAME').AsString);
SavePictureDialog.Execute; (IODocsDataModule.INDOCSIBTableIMAGE as TBlobField).SaveToFile(SavePictureDialog.FileName);
end;
Проблема при сохранении файла из БД
Код:
При выполнении SavePictureDialog не появляется, а сразу выдается ошибка "Cannot create file "". Имя файла или его расширение имеют слишком большую длину." Есстественно в
Код:
IODocsDataModule.INDOCSIBTable.fieldbyname('IMAGEFNAME').AsString
находится имя файла. И что тут может быть не так?
http://ibase.ru/devinfo/charvar.htm). Отсюда и ошибка "Cannot create file "". Имя файла или его расширение имеют слишком большую длину." и то, что SavePictureDialog не открывался. После замены типа данных поля на VARCHAR всё стало нормально работать.
Решение проблемы оказалось более лёгким чем я думал, а именно - типом данных поля IMAGEFNAME был CHAR, который заполняет свободное место в поле пробелами, у меня размер IMAGEFNAME был 300, имя файла естесственно было короче и оставшееся место заполнялось пробелами (