Ver Mensaje Individual
  #3  
Antiguo 09-09-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita