Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-06-2015
tarco35 tarco35 is offline
Miembro
 
Registrado: sep 2003
Posts: 210
Poder: 21
tarco35 Va por buen camino
Question 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.
Responder Con Cita
  #2  
Antiguo 09-06-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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 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
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 09-06-2015
tarco35 tarco35 is offline
Miembro
 
Registrado: sep 2003
Posts: 210
Poder: 21
tarco35 Va por buen camino
Thumbs up

Muchisimas gracias, funciona perfecto.... muy amable y gracias por tu tiempo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Errror al Cerrar Aplicacion con Dll Forms look Varios 1 13-03-2009 22:23:30
No poder copiar texto de un memo FDB Varios 2 31-08-2008 00:40:45
Problemas Sumando Memo1.Memo + Memo2.Memo JuanErasmo Impresión 10 05-02-2008 14:40:13
Errror!! en Sybase JELIRM SQL 1 06-07-2006 21:28:17
me da un errror is not valid floating point value en delphi uper Firebird e Interbase 2 30-12-2005 10:52:36


La franja horaria es GMT +2. Ahora son las 23:11:02.


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
Copyright 1996-2007 Club Delphi