![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Hola a todos,
Estoy intentando grabar imágenes en una columna BLOB de una tabla de Oracle 9i con Delpih IV. Dado que el usuario de conexión a la aplicación, por razones de seguridad, lo único que tiene son sinónimos a Stored Procedures de otro schema con grants de execute (el usuario de conexión no vé las tablas), la única forma de efectuar la grabación es pasando el valor a un Stored Procedure. Estoy utilizando ODAC en Delphi, tengo un componente TOraQuery (similar al TQuery+TUpdateSql) con una columna IMAGEN tipo Blob. El código para SQLInsert del componente es algo así:
La parte de captura de datos en Delphi la resuelvo utilizando un componente TDBImage, y con este código:
Esto funciona bien, me lee cualquier tipo de imagen (jpg, bmp, o ico). El problema lo tengo en Oracle. Según lo que leí en la documentación, debería resolverlo así (asumiendo que las imágenes a cargar sean chicas, nunca superiores a 32K):
Al ejecutar el SP Oracle me devuelve el sgte error: ORA-06502: PL/SQL: numeric or value error: invalid LOB locator specified: ORA-22275 ¿Alguien sabe en qué me estoy equivocando? O lo que es peor: lo que quiero hacer...¿se puede hacer? Gracias. |
#2
|
|||
|
|||
Fe de erratas
En el último código SQL, donde dice:
debió decir: De todas maneras, el error sigue siendo el mismo, y ahora descubrí que se genera al ejecutar el sgte comando: Lo que más me llama la atención es que si ejecuto: nLong me da null (por eso me preguntaba si lo que quiero hacer se puede hacer...) |
#3
|
|||
|
|||
Ay...
Bueno, perdonen ahora que me salieron todos esos size en el código SQL... Recién estoy aprendiendo a usar esto...
|
#4
|
||||
|
||||
Cualquier tipo de archivo en DB de Oracle
Con este codigo en un TOraQuery puedes subir a la DB cualquier tipo de archivo
OraQuery1.Close; OraQuery1.UnPrepare; OraQuery1.SQL.Clear; OraQuery1.SQL.Text:= 'insert into TABLA'+ ' (codigo, imagen)'+ 'values'+ ' (:vCodigo, empty_blob())'+ 'return'+ ' imagen into :imagen'; OraQuery1.Prepare; OraQuery1.ParamByName('vCodigo').Value:= Codigo; OraQuery1.ParamByName('imagen').LoadFromFile(OpenPictureDialog1.FileName ,ftOraBlob); OraQuery1.ParamByName('imagen').ParamType:= ptInput; OraQuery1.ExecSQL; OraQuery1.Close; OraQuery1.UnPrepare; y para bajarlo lo haces con un quiery en un TOraQuery OraQuery1.Close; OraQuery1.UnPrepare; OraQuery1.SQL.Clear; OraQuery1.SQL.Text:= 'select *'+ 'from TABLA' // + condicion where si la necesitas OraQuery1.Prepare; OraQuery1.Open; TBlobField(Query1.FieldByName('imagen')).SaveToFile(SaveDialog1.FileName); OraQuery1.Close; OraQuery1.UnPrepare; |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Guardar imagenes en Oracle 8i con BDE 5.0 | vmladino | Oracle | 1 | 31-10-2007 23:24:43 |
grabación | jorodgar | Windows | 4 | 19-09-2005 11:22:42 |
Recuperando imagenes desde Oracle | MarioATamborini | Oracle | 4 | 14-07-2005 21:52:14 |
Imagenes en Oracle 7 | jnbruguer | Oracle | 6 | 07-07-2005 19:16:07 |
Recuperando imagenes desde Oracle | vmladino | Gráficos | 1 | 11-11-2004 17:23:35 |
![]() |
|