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 Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-06-2011
rodrinig rodrinig is offline
Miembro
 
Registrado: dic 2007
Posts: 28
Poder: 0
rodrinig Va por buen camino
Guardar un Variant en Firebird

Hola Foro: Quería saber como podría guardar un dato Variant en una base firebird, en un campo Blob. El tema que despues tengo que tomarlo para comparar (es un huella dactilar).
Desde Ya muchas Gracias

Rodrigo
Responder Con Cita
  #2  
Antiguo 06-06-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Haz una búsqueda por "guardar blob" o "guardar imagen", por ejemplo.
Por cierto, esto no tiene nada que ver con "Conexión con bases de datos", lo paso a "Firebird".
Responder Con Cita
  #3  
Antiguo 06-06-2011
rodrinig rodrinig is offline
Miembro
 
Registrado: dic 2007
Posts: 28
Poder: 0
rodrinig Va por buen camino
Si casimiro , lo debo haber abierto mal a el Tema. Te paso a explicar, esto es para guardar en una base Firebird, el resultado de una lectura de una huella dactilar. Baje unos ejemplos de Digital Personal ( es para un aparato UareU4500), y la lectura la hace barbaro, y guardar (creo) que tambien. Trabajo en Delphi7

Aca graba la lectura en la base:

Código Delphi [-]
  var
    l_interface : IDispatch;
    outFile : File;
    vrnt : Variant;   //used to store the serialized template
    vt : integer ;
    vtByteBuf : PByteArray;  //Reference to the raw data array in the variant
    aryLow : integer;
    aryHigh : integer;
    rawDataSize: integer;
    loopIndex : integer;
begin
......
 ......
   vrnt:=FPTemplate.Serialize;  //esta funcion me lo transforma a un Variant
              aryLow:=VarArrayLowBound(vrnt,1);
              aryHigh:=varArrayHighBound(vrnt,1);
              aryHigh:=aryHigh-aryLow;
              showmessage(inttostr(aryHigh));
              vtByteBuf:=VarArrayLock(vrnt);  //lock down the array

              for loopIndex := 0 to aryHigh - 1 do
                     fpData[loopIndex]:=vtByteBuf[loopIndex];

              VarArrayUnlock(vrnt);
              MS := TMemoryStream.Create; { creates stream }
              MS.WriteBuffer(fpData, aryHigh); { writes stream }

              if not dm.cds.Active then
                 dm.cds.open;
              dm.cds.Append;
              dm.cdsAA_CODIGO.AsInteger := 0;
              dm.cdsAA_NOMBRE.AsString  := self.Edit1.Text;
              dm.cdsAA_HUELLA.LoadFromStream(MS);
              dm.cds.Post;
              dm.cds.ApplyUpdates(0);

el tema es cuando quiero sacar de la base la huella y pasarla a un Variant asi
comparo las huellas.

Espero que me puedas ayudar, una ver terminado subo todo el codigo al foro

Gracias

Rodrigo
Responder Con Cita
  #4  
Antiguo 06-06-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Hola.

En principio solo hay que hacer el proceso inverso.

Sobre el campo persistente, en lugar de un LoadFromStream (es decir, recoger en el campo los datos de la variable), tienes que utilizar el SaveToStream (es decir, pasar al Stream los datos del campo para poder guardarlos en la variable).

NOTA : Y de la misma forma, en lugar de leer la variable MS.WriteBuffer(fpData, aryHigh); tendrás que modificarla MS.ReadBuffer (no te olvides de intercambiar el orden del código para guardar los datos, primero tienes que poner los datos del campo en el Stream y después leerlos del Stream para ponerlos en la variable).

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).

Última edición por guillotmarc fecha: 06-06-2011 a las 21:19:27.
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
Fallo al guardar dato en firebird weke Conexión con bases de datos 3 02-02-2009 23:36:53
Guardar Imagen en Firebird BuenaOnda Firebird e Interbase 11 20-03-2008 12:15:30
Guardar Datos de una bd access a una firebird day_eli Conexión con bases de datos 1 08-02-2007 23:47:04
Guardar archivos a BD con Firebird alucardo Gráficos 1 12-06-2006 20:29:53
guardar autonumerico en firebird Yoli Conexión con bases de datos 3 30-03-2005 17:26:47


La franja horaria es GMT +2. Ahora son las 17:03:53.


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