Ver Mensaje Individual
  #2  
Antiguo 30-01-2014
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 sonjeux.

Un ejemplo simple desde cero:
Código SQL [-]
CREATE TABLE PRUEBA(
  BYTEARRAY BLOB SUB_TYPE 1
);

Código Delphi [-]
...
const
   MAX = 100;

type
  TTemplate = record
    ftemplate: array[0..MAX] of byte;
  end;

var
  T: TTemplate;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
  IBDataSet1.Open;
end;

procedure TForm1.btnWriteClick(Sender: TObject);
var
  i: Integer;
  S: TStream;
begin
  // darle unos valores al arreglo ...
  for i:= 0 to MAX do  T.ftemplate[i]:= Random(255);
  // guardar
  with IBDataSet1 do
  begin
    Append;
    S:= CreateBlobStream(FieldByName('BYTEARRAY'), bmReadWrite);
    try
      S.Seek(0, soBeginning);
      S.WriteBuffer(T, SizeOf(T));
      Post;
    finally
      S.Free;
    end;
  end;
end;

procedure TForm1.btnReadClick(Sender: TObject);
var
  S: TStream;
  i: Integer;
begin
  // leer valor registro actual
  with IBDataSet1 do
  begin
    S:= TMemoryStream.Create;
    try
      TBlobField(FieldByName('BYTEARRAY')).SaveToStream(S);
      S.Position:= 0;
      S.Read(T.ftemplate,SizeOf(T.ftemplate));
    finally
      S.Free;
    end;
  end;
  // mostrar en ListBox
  ListBox1.Clear;
  for i:= 0 to MAX do
    ListBox1.Items.Add(IntToStr(T.ftemplate[i]))
end;

Saludos
__________________
Daniel Didriksen

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