Вывод данных из blob поля в Memo

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Начальные данные.

Используемая база данных: Firebird 2.5

Среда разработки: Delphi XE7, стандартный набор компонентов

Цель: вывести данные из поля blob в Memo

Примечание: Работа с базой данных построена на компонентах FireDAC.

Для реализации вывода есть несколько способов, но я покажу один в кратном варианте, без использования эксептов и доп. проверок, это вы под свой вкус сделаете.


procedure BlobToMemo(Memo_: TMemo; Query: TFDQuery; Field: string);
var
  BlobStream: TStream;
begin
  Memo_.Clear;
  BlobStream := Query.CreateBlobStream(Query.FieldByName(Field),bmRead);
  Memo_.Lines.LoadFromStream(BlobStream);
  BlobStream.Free;
end;

где,

TFDQuery — это класс компонента из библиотеки FireDAC.

FireDAC

Теперь пробежимся по описанию работы, если кто-то не понял. Вся работе с Blob идет через поток (TStream), то есть, создаем поток для блоба, одновременно загружая в него данные и потом загружаем наш поток в мемо (благо там есть метод LoadFromStream), и конечно очищаем его после загрузки.

Весь код специально оформи в процедуру, для наглядности.

Вместо компонента FDQuery можно использовать и SQLQuery, или датасет, если у него есть метод CreateBlobStream.

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *