Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-01-2014
sonjeux sonjeux is offline
Miembro
 
Registrado: jul 2004
Posts: 60
Poder: 20
sonjeux Va por buen camino
Question Salvar un array of byte en firebird?

Saludos, alguien sabe como podria salvar un record de un array[0..16384-1] of byte en un campo en una base de datos firebird? que tipo de campo necesito? Blob? y como lo recuperaria?

Ejemplo (Quiero salvar este tipo de dato)

Código Delphi [-]
Template = record
    ftemplate: array[0..16384-1] of byte;
end;

muchas gracias por su tiempo.

Última edición por sonjeux fecha: 30-01-2014 a las 00:10:38.
Responder Con Cita
  #2  
Antiguo 30-01-2014
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 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
  #3  
Antiguo 30-01-2014
sonjeux sonjeux is offline
Miembro
 
Registrado: jul 2004
Posts: 60
Poder: 20
sonjeux Va por buen camino
Talking

Barbaro, muchas gracias voy a probar
Responder Con Cita
  #4  
Antiguo 30-01-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por ecfisa Ver Mensaje
Un ejemplo simple desde cero:
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
array en Firebird NizamUlMUlk Firebird e Interbase 3 30-11-2012 09:54:09
Leer byte a byte un fichero binario NPIdea C++ Builder 2 22-03-2012 17:36:34
Como convertir un string a un array de byte K-ba Varios 2 14-02-2011 00:27:07
¿Buffer: array[0..1024] of Byte;? JXJ Varios 2 29-03-2009 23:05:46
ADO: Byte nulo (byte #0) en un string Pandre Conexión con bases de datos 0 02-04-2004 21:18:37


La franja horaria es GMT +2. Ahora son las 00:51:08.


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