Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Errror al copiar memo. (https://www.clubdelphi.com/foros/showthread.php?t=88453)

tarco35 08-06-2015 23:16:05

Errror al copiar memo.
 
Hola, estoy copiando un campo memo de una tabla a otra de la siguiente forma:

Código Delphi [-]
// en su sitio correspondiente estan definidas las variables
  var
  Stream1: TBlobStream;
  Stream2: TStream;

//ya en el codigo de programa

  Stream1 := TBlobStream.Create(FormTraspasoDatos.TablaPacientesOhmedynMEMO1, bmRead);
  try
    ModuloDatos.TablaPacientes.Edit;
    Stream2 := ModuloDatos.TablaPacientes.CreateBlobStream(ModuloDatos.TablaPacientes.FieldByName('MOTIVO'),bmReadW  rite);
    try
      Stream2.CopyFrom(Stream1,Stream1.Size);
      ModuloDatos.TablaPacientes.Post;
      ModuloDatos.TablaPacientes.FlushBuffers;
    finally
      //Stream2.Free;
    end;
  finally
    Stream1.Free;
  end;

está copiado de la ayuda de delphi 6 y al ejecutar la linea Stream2.Free me lanza el error:
EDBEngineError: BLOLB NOT OPENED

Y supongo que necesito liberarlos porque tengo que meterlo en un bucle para copia el contenido del memo de una tabla a otra.
Gracias.

ecfisa 09-06-2015 00:34:04

Hola tarco35.

Código Delphi [-]
procedure CopyBlobFields(SourceDataSet, TargetDataSet: TDataSet;
  const SourceFieldName, TargetFieldName: string);
var
  Stream: TStream;
begin
  Stream := TMemoryStream.Create;
  try
    TBlobField(SourceDataSet.FieldByName(SourceFieldName)).SaveToStream(Stream);
    Stream.Seek(0, soFromBeginning);
    TargetDataSet.Edit;
    TBlobField(TargetDataSet.FieldByName(TargetFieldName)).LoadFromStream(Stream);
  finally
    Stream.Free;
  end;
end;

Ejemplo de uso:
Código Delphi [-]
begin
  CopyBlobFields(DataSet1, DataSet2, 'BLOB_FIELD', 'BLOB_FIELD');
  ...

Saludos :)

tarco35 09-06-2015 21:09:24

Muchisimas gracias, funciona perfecto.... muy amable y gracias por tu tiempo.


La franja horaria es GMT +2. Ahora son las 18:21:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi