Сохранение компонента полностью со всеми свойствами в БД

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Автор: Z-man

WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****

>> Сохранение компонента полностью, со всеми свойствами в БД.

Данная функция использовалась и используется для сохранения отчетов,

формируемые пользователем, в базу данных. БД используется: Informix и Oracle,

под другие БД не пробовал. Отчеты строились в ReportBuilder5.5.

Для других компонентов не пробывал использовать

Зависимости: стандартные

Автор: Z-man, nik7777@land.ru, ICQ:160236098, Astana

Copyright: Z-man ®

Дата: 28 мая 2002 г.

***************************************************** }

function ComponentToString(Component: TComponent): string;

var

BinStream: TMemoryStream;

StrStream: TStringStream;

s: string;

begin

BinStream := TMemoryStream.Create;

try

StrStream := TStringStream.Create(s);

try

BinStream.WriteComponent(Component);

BinStream.Seek(0, soFromBeginning);

ObjectBinaryToText(BinStream, StrStream);

StrStream.Seek(0, soFromBeginning);

Result := StrStream.DataString;

finally

StrStream.Free;

end;

finally

BinStream.Free

end;

end;

Пример использования:

OraTReport.FieldByName(‘report’).AsString := ComponentToString(rbReport);

//* где: *//

//* rbReport — ReportBuilder5 (желтый отчет)*//

//* OraTReport — TOraTable из пакета компонентов ODAC (визуальные *//

//* компоненты для прямого доступа к Oracle)*//

{/codecitation}

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