Ver Mensaje Individual
  #2  
Antiguo 04-10-2012
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 webmasterplc.

Código Delphi [-]
// Pasar el contenido del record al campo BLOB
procedure RecordToBlob(Rec: RegFormaDePago; Blob: TBlobField);
var
  Stream: TMemoryStream;
begin
  Stream:= TMemoryStream.Create;
  try
    Stream.WriteBuffer(Rec, SizeOf(Rec));
    Stream.Seek(0, soFromBeginning);
    Blob.LoadFromStream(Stream);
  finally
    Stream.Free;
  end;
end;

// Pasar el contenido del campo BLOB al record
procedure BlobToRecord(var Rec: RegFormaDePago; Blob: TBlobField);
var
  Stream: TMemoryStream;
begin
  ZeroMemory(@Rec, SizeOf(Rec));
  Stream:= TMemoryStream.Create;
  try
    Stream.SetSize(SizeOf(Rec));
    Blob.SaveToStream(Stream);
    Stream.Seek(0, soFromBeginning);
    Stream.ReadBuffer(Rec, SizeOf(Rec));
  finally
    Stream.Free;
  end;
end;

Ejemplos de llamada:
Código Delphi [-]
// Pasar record a campo BLOB
procedure TForm1.aBlobClick(Sender: TObject);
var
  R: RegFormaDePago;
begin
   ...
   RecordToBlob(R, TBlobField(DataSet.FieldByName('CPBLOB')));
   ...
end;   

// Pasar campo BLOB a record
procedure TForm1.ARecordClick(Sender: TObject);
var
  R: RegFormaDePago;
begin
  ...
  BlobToRecord(R, TBlobField(DataSet.FieldByName('CPBLOB')));
  ... 
end;

Saludos.
__________________
Daniel Didriksen

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