Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 19-02-2011
Avatar de burgosrodas
burgosrodas burgosrodas is offline
Miembro
 
Registrado: sep 2008
Ubicación: Colombia
Posts: 24
Poder: 0
burgosrodas Va por buen camino
Solución guardando archivos en postgres campo BYTEA

Muchas gracias por tu ayuda
pero intenté creando la tabla con el campo 'lo' y me arroja lo siguiente

Código SQL [-]
ERROR:  no existe el tipo «lo»
LINE 4:         picture lo,
                        ^

********** Error **********

(utilizo Delphi XE, ZeosLib, y postgres 9.02)
seguí investigando en el foro y me encontré con unas pistas muy practicas
como la siguiente
(obviamente hablo pascal, tu ya lo traducirás a C)

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
stream:TMemoryStream;
begin
    if fileexists('C:\Archivo.dat') then
      begin
      try
       stream:=TMemoryStream.Create;

         stream.LoadFromFile('C:\Archivo.dat');

            ZQuery1.SQL.Add('INSERT INTO temp(imagen) VALUES(:ARCHIVO);');
            ZQuery1.ParamByName('ARCHIVO').LoadFromStream(stream,ftBlob);
            ZQuery1.ExecSQL;

      finally

            stream.Free;
      end;

      end;
end;


funciona siempre y cuando el campo declarado en la base de datos postgres sea de tipo BYTEA, y se hubiese cambiado la configuración en el archivo "postgresql.conf" del postgres, pues hubo un cambio en la forma en que se comporta este campo de la versión 8 a la 9 de postgres, y el cambio que hay que realizar es el siguiente:

buscar la linea comentada en el postgresql.conf
# bytea_output = 'hex'
y cambiarla por
bytea_output = 'escape'

si no se realiza este cambio, el campo por defecto entregara nuestros datos en hexadecimal, asi los hubiesemos guardado en binario.(esto lo averigüe despues de horas de documentación, pues casi no vi documentación al respecto) lo publico para quienes tienen el mismo problema
aclaro que es para postgres 9.02
ahh!!
y para leer el dato almacenado o guardarlo...
un simple casting
Código Delphi [-]
...
TBlobField(ZQuery1.FieldByName('imagen')).SaveToFile('C:\archivo.jpg');
...

muchas gracias por tu información y tu ayuda KATODO
saludos desde Colombia
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
Leer archivos binarios MasLoveAvge Varios 7 02-01-2016 11:29:40
archivos binarios kazcote Varios 5 05-12-2005 04:02:35
c++ builder y manejo de archivos binarios prubtest C++ Builder 2 11-03-2004 17:03:05
ayuda programa con archivos binarios nahuel Varios 4 25-01-2004 17:55:20
archivos exe y/o binarios fcran Varios 2 26-06-2003 14:34:21


La franja horaria es GMT +2. Ahora son las 03:19:43.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi