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

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 28-05-2010
JCarlosas JCarlosas is offline
Miembro
 
Registrado: abr 2006
Ubicación: Habana. Cuba
Posts: 103
Poder: 19
JCarlosas Va por buen camino
Hola. Muchas gracias por su rápida respuesta. Yo había probado con un código parecido a ese y no me funciono. Volví a probar con ese y tampoco me funciono pero quizás es por mi ignorancia respecto a la configuración de los parámetros.
Sin embargo tengo colegas que me han asegurado que el código que me muestras les ha funcionado con Delphi y otros componentes distintos a ZEOS.
Yo estoy trabajando con Lazarus y con Zeos.
Por suerte encontré otra forma también de hacerlo las cual les pongo debajo.

Código Delphi [-]
//Formato de la tabla
(*
CREATE TABLE BIOLIFE (
  ID INTEGER NOT NULL,
  CATEGORY VARCHAR(15) CHARACTER SET WIN1251 COLLATE WIN1251,
  GRAPHIC BLOB);
*)
Procedure TForm1.ButtonCargarImagenEnBBDDClick(Sender: TObject);
var
    fs : TFileStream ;
    blob: Tstream;
begin
   if odpict.Execute
     then Begin
            //Este ejemplo utiliza un TZtable (ztbBioLife), pero debe funcionar igual para TZQuery
            //Se supone que ztbBioLife esta posicionado en el registro adecuado.
            //Se puede usar tambien un TZQuery con una setencia Select * from table where id=xxx
            //Y despues de parado en el registro adecuado hacer lo que se muestra en el codigo.
            //Si esta utlizando un DBGrid. No necesita hacer ninguna otra modificacion al codigo
            //En este caso se insertara la imagen en el registro que este seleccionado en el dbgrid
            DM.ztbBioLife.Edit;
            blob := DM.ztbBioLife.CreateBlobStream(DM.ztbBioLife.FieldByName('graphic'), bmWrite);
            try
              blob.Seek(0, soFromBeginning);
              fs := TFileStream.Create(odpict.FileName, fmOpenRead or fmShareDenyWrite);
              try
                blob.CopyFrom(fs, fs.Size);
              finally
                  fs.Free
                end;
              finally
                blob.Free
               End;
          end;

End;

//*****************************************************************************
Procedure TForm1.DBGrid2SelectEditor(Sender: TObject; Column: TColumn;
  Var Editor: TWinControl);
var
   blob: TStream;
Begin
  blob := DM.ztbBioLife.CreateBlobStream(DM.ztbBioLife.FieldByName('graphic'), bmRead);
  blob.Seek(0, soFromBeginning);
  try
   Image2.Picture.LoadFromStreamWithFileExt(blob, '.jpg');
   Image2.Update;

  finally
    blob.Free;
    Image2.Update;
  end;
end;

Lo anterior fue probado con FireBird. Quiero ver si con postgressql funciona también, pero no encontre el tipo de campo BLob en Posgresql. Tengo que averiguar aun cual es el equivalente.

El ejemplo anterior supone que fue insertado el registro con anterioridad y que después se le va a insertar la imagen en el campo adecuado.
Muchas gracias por todo.
JCarlos

Última edición por JCarlosas fecha: 28-05-2010 a las 17:45:54.
Responder Con Cita
 



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
Error al guardar Jpeg en Campo Blob El_Perrito Gráficos 6 28-04-2012 20:06:38
Blob en Firebird subzero PHP 0 29-02-2008 06:25:26
Blob´s en firebird pzhero Firebird e Interbase 6 02-05-2004 17:39:47
Problemas alguardar imagenes jpeg y gif en un campo blob Flycket Firebird e Interbase 3 20-02-2004 09:29:02


La franja horaria es GMT +2. Ahora son las 05:00:18.


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