Hola de nuevo.
Leyendo con mas detenimiento
...
La columna
BLOB tendría que estar declarada como
SUB_TYPE 0 ya que
SUB_TYPE 1 es para texto básico:
What are BLOB subtypes?
Luego para guardar el contenido de un
TRichEdit a la columna
BLOB respetando el formato:
Código Delphi
[-]
procedure RichEditToBlob(DataSet: TDataSet; const aFieldName: string; RE:TRichEdit);
var
Stream: TStream;
begin
Stream := TMemoryStream.Create;
try
RE.Lines.SaveToStream(Stream);
Stream.Position := 0;
DataSet.Edit;
TBlobField(DataSet.FieldByName(aFieldName)).LoadFromStream(Stream);
DataSet.Post;
finally
Stream.Free;
end;
end;
Ejemplo de uso:
Código Delphi
[-]
...
begin
RichEditToBlob(IBDataSet1, 'CAMPO_BLOB', RichEdit1)
...
La acción inversa, para mostrar en un
TRichEdit el contenido de la columna
BLOB:
Código Delphi
[-]
procedure BlobToRichEdit(DataSet: TDataSet; const aFieldName: string; RE:TRichEdit);
var
Stream: TStream;
begin
Stream := TMemoryStream.Create;
try
TBlobField(DataSet.FieldByName(aFieldName)).SaveToStream(Stream);
Stream.Position := 0;
RE.PlainText := False;
RE.Lines.LoadFromStream(Stream);
finally
Stream.Free;
end;
end;
Aunque este último código sería innecesario para el caso del
TDBRichEdit. Basta con configurar sus propiedades
DataSource y
DataField para que se visualice el contenido.
Saludos