Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Oracle
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-08-2008
Daniel Muniz Daniel Muniz is offline
Registrado
 
Registrado: ago 2008
Posts: 4
Poder: 0
Daniel Muniz Va por buen camino
levantar un blob desde oracle

Hola:
Estoy teniendo un problema para poder levantar desde delphi un dato blob que esta almacenado en oracle (fotos).
Tengo una conexiion ADO y traigo el campo blob de oracle invocando a un procedimiento de la base con StoredProc, tengo un parametro de salida en este procedimiento que es del tipo blob en oracle y del mismo tipo defino mi parametro en delphi.
El procedimiento lo ejecuto sin problemas pero lugo no puedo cargar la imagen en un componente "Timage".
Cualquier tipo de datos en el que quiero cargar el parametro que me devuelve oracle no me deja, dice que es un variant y que no puedo pasar un variant a blob.
Pero yo lo defino como blob al parametro, no se porque lo trae como variant.

Bueno muchas gracias
Responder Con Cita
  #2  
Antiguo 17-08-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Serías tan amable de indicarme la cadena de conexión que utilizas?

Así como mostrar la declaración de parámetros de tu sp y el bloque de creación de parámetros en ADOSp?


Saludos.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #3  
Antiguo 18-08-2008
Daniel Muniz Daniel Muniz is offline
Registrado
 
Registrado: ago 2008
Posts: 4
Poder: 0
Daniel Muniz Va por buen camino
ok, gracias, te paso el codigo

sp1:=TADOStoredProc.Create(nil);
sp1.Connection:=ADOConnection1;
sp1.Parameters.CreateParameter('lectura',ftString,pdInput,250,'');
sp1.Parameters.ParambyName('lectura').value:=lecturafinal;
sp1.Parameters.CreateParameter('informacion',ftString,pdOutput,250,'');
sp1.Parameters.CreateParameter('info_tarjeta',ftstring,pdOutput,250,'');
sp1.Parameters.CreateParameter('error',ftstring,pdOutput,250,'');
sp1.Parameters.CreateParameter('foto',ftBlob,pdOutput,250000,'');
sp1.ExecProc; // Ejecuto el procedimiento
// Levantar la foto (foto_blob es una variable de tipo blob)
foto_blob:=sp1.Parameters.ParambyName('foto').value;
Image1.Picture.Assign(foto_blob);

El procedimiento ejecuta bien, y los demas parametros de salida que no son blob los capturo bien.
el tema es que el blob me lo devuelve como variant y no como blob, no se porque porque es definido blob por mi y en la base.
Ese codigo que te pase falla en al penultima linea porque dice que son incompatibles los tipos unos es TBlobField y el otro variant.
Si cargo en un variant el parametro despues no lo pudo poner en el Timage

Gracias
Daniel
Responder Con Cita
  #4  
Antiguo 19-08-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Yo lo hago de la siguiente manera, espero te sirva

Código Delphi [-]
Var
   LmsImagen: TADOBlobStream;
Begin

If Not LdmDAtos.AdsDatos.Fields[26].IsNull Then
   Begin
       LmsImagen := TADOBlobStream.Create(TBlobField(AdsDatos.Fields[26]),bmRead);
                  LmsImagen.SaveToFile(ExtractFilePath(Application.ExeName) + 'foto.jpg');
                  ImgFoto.Bitmap.LoadFromFile(ExtractFilePath(Application.ExeName) + 'foto.JPG')
End
Else
ImgFoto.Bitmap.LoadFromFile('sinfoto.JPG');
End;
__________________
Conoce mi blog http://www.edgartec.com
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
Problema BLOB en oracle leshcoff Conexión con bases de datos 0 08-06-2007 22:34:16
Problema BLOB Oracle en recuperación rodmayes Conexión con bases de datos 1 27-06-2006 00:00:30
Instar Archivo en BLOB desde SQL Enan0 SQL 0 22-11-2005 13:22:47
Tratamiento de los campos BLOB de ORACLE javito Oracle 1 06-09-2004 20:27:32
Oracle+adotable+blob? _cesar_ Conexión con bases de datos 5 26-06-2004 03:32:42


La franja horaria es GMT +2. Ahora son las 05:29:59.


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