Club Delphi  
    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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-02-2011
KATODO KATODO is offline
Miembro
 
Registrado: jul 2008
Posts: 19
Poder: 0
KATODO Va por buen camino
Es posible que el tipo "lo" ya sea parte oficial de postgres para la version 9.02. Esos scripts eran necesarios en la versión 8, debido a que el tipo "lo" no era parte de los tipos básicos de postgres. Intenta crear la tabla y si no te da error puedes intentar guardar y cargar los objetos.
Responder Con Cita
  #2  
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
  #3  
Antiguo 25-04-2011
franktrevi franktrevi is offline
Registrado
NULL
 
Registrado: abr 2011
Posts: 1
Poder: 0
franktrevi Va por buen camino
otra manera de crear el tipo lo

CREATE FUNCTION loin (cstring) RETURNS lo AS 'oidin' LANGUAGE internal IMMUTABLE STRICT;
CREATE FUNCTION loout (lo) RETURNS cstring AS 'oidout' LANGUAGE internal
IMMUTABLE STRICT;
CREATE FUNCTION lorecv (internal) RETURNS lo AS 'oidrecv' LANGUAGE internal
IMMUTABLE STRICT;
CREATE FUNCTION losend (lo) RETURNS bytea AS 'oidrecv' LANGUAGE internal
IMMUTABLE STRICT;

CREATE TYPE lo ( INPUT = loin, OUTPUT = loout, RECEIVE = lorecv, SEND = losend,
INTERNALLENGTH = 4, PASSEDBYVALUE );
CREATE CAST (lo AS oid) WITHOUT FUNCTION AS IMPLICIT;
CREATE CAST (oid AS lo) WITHOUT FUNCTION AS IMPLICIT;

Fuente:
astbook.asteriskdocs.org/en/2nd_Edition/asterisk-book-html-chunk/I_section12_tt1578.html

Usando el tipo de datos lo de Postgres, los componentes ADO en delphi 7 (probado) funciona igual que el tipo image de MSSQL
tanto como para recuperar como para guardar fotos en la BD
Responder Con Cita
  #4  
Antiguo 26-04-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Recordar etiquetar el código.



.
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
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 11:44:42.


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