Пример кода чтения и сохранения данных из blob поля через TADOQuery.
//включаем режим редактирования
aADOQuery.Edit;
//читаем поле blob
GridField := TBlobField(aADOQuery.FieldByName('BLOB'));
//Создаем поток для чтения записи
ComStream := aADOQuery.CreateBlobStream(GridField, bmReadWrite);
try
//укажем имя файла для выгрузки
ComFileName:=ExtractFilePath(Application.ExeName)+'blob.blob';
//поток для файла
ComFileStream:=TFileStream.Create(ComFileName,fmCreate);
try
//Скопируем все из blob потока в файл
ComFileStream.CopyFrom(ComStream,ComStream.Size);
finally
//освободим поток файла
ComFileStream.free;
end;
......
//поток для загружаемого фала
ChComFileStream:=TFileStream.Create(ComFileStream,fmOpenRead);
try
//Скинем поток данных в поле
ComStream.Size:=0;
ComStream.Position:=0;
//Скопируем все из файл
ComStream.CopyFrom(ChComFileStream,ChComFileStream.Size);
finally
//очистим поток фала
ChComFileStream.Free;
end;
finally
//освободим поток поля blob
ComStream.Free;
end;
//зафиксируем изменения
aADOQuery.Post;
Комментариев нет:
Отправить комментарий