Insertar datos blob en base de datos Oracle.

Necesito crear un programa que inserte unas imágenes en un campo BLOB de una base de datos Oracle. El programa falla al insertar los datos. La versión de Powerbuilder es 6.5 y la Base de datos es Oracle 9i.
¿Me puedes ayudar?.
El código que uso es este...
Integer foto, guardar, n
Blob imagen
string ruta, id
ruta = "F:\prueba\fotos\1.jpg"
foto = FileOpen(ruta,StreamMode!,Read!,LockReadWrite!)
guardar = FileRead(foto,imagen)
FileClose (foto)
Updateblob prueba set foto =:imagen
where id = :1
using sqlca;
if sqlca.sqlnrows >0 then
commit using sqlca;
messagebox("Bien","Grabación realizada con éxito")
else
messagebox("Error",string(sqlca.sqlnrows))
end if

1 respuesta

Respuesta
1
Lastimosamente aun no he tenido la oportunidad de grabar blobs en Oracle,
sin embargo hay cosas que podrías verificar y que pueden ser de utilidad,
Primero estoy viendo que evalúas el valor de sqlnrows,
este valor es afectado unicamente cuando utilizas la instrucción update,
ya se que me dirás pues eso es lo que estoy haciendo, sin embargo, según entiendo en tu
inquietud, dices que necesitas insertar, por lo que deberías de cambiar tu instrucción, update
por un insert.
Ademas te recomiendo que interrogues las variables sqlcode y sqldbcode estas
devuelven una los errores que pueden ocacionarse en el sistema y la otra en la
base de datos, adicionalmente la variable sqlerrtext contiene el valor en texto
o explicativo del error sucitado.
Una evaluación normal podría ser
IF ((SQLCA.SQLCODE = 0) AND (SQLCA.SQLDBCODE = 0)) THEN
...
...
COMMIT USING SQCA;
ELSE
ROLLBACK USING SQLCA;
END IF
Adicionalmente puedes utilizar le variable sqlnrows para conocer cuantas tuplas
o registros fueron afectados en la operación, siempre y cuando esto sea en principio
en un update.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas