Cómo insertar y extraer documentos de una tabla Oracle (con un campo RAW/BLOB). Para ello utilizaremos Visual Basic 6 y OLEDB.

Oracle incorpora un tipo de datos llamado BLOB que permite almacenar documentos de cualquier tipo (imágenes, excel, word, access, comprimidos, vídeos, música, etc). En principio admite cualquier tipo de documento y de cualquier tamaño. Para más información puedes visitar este artículo: Tipos de datos en Oracle. Aún sigue manteniendo el tipo de datos LONG RAW que está obsoleto, sustituido por BLOB. Las instrucciones que os mostramos a continuación admiten ambos tipos de datos: BLOB y LOB RAW.

Para poder insertar documentos en un campo BLOB de Oracle con Visual Basic necesitaremos una librería (dll) llamada SAFileMgr Module (SAFileMgr.dll), esta librería está disponible de forma gratuita en la web www.softartisans.com. Tras descargar este fichero, deberemos copiarlo a la carpeta del sistema (normalmente C:/Windows/System32) y registrarlo con el comando:

regsvr32 C:/Windows/System32/SAFileMgr.dll

De la siguiente forma: copiaremos el fichero SAFileMgr.dll a la carpeta System32 de Windows. Pulsaremos en el botón «Inicio», luego en «Ejecutar»:

Insertar y extraer documentos en una tabla Oracle con Visual Basic 6

Introduciremos el comando:

%systemroot%/system32/SAFileMgr.dll

y pulsaremos «Aceptar»:

Insertar y extraer documentos en una tabla Oracle con Visual Basic 6

Si el registro es correcto nos mostrará este mensaje:

Insertar y extraer documentos en una tabla Oracle con Visual Basic 6

Con el texto:

RegSvr32
DllRegisterServer en C:/Windows/System32/SAFileMgr.dll se realizó con éxito.
Aceptar

Tras copiar y registrar el fichero SAFileMgr.dll, también necesitaremos disponer de una base de datos Oracle activa (Instalar Oracle Database 10g en Windows XP), con una base de datos (Cómo crear una base de datos en Oracle 9 utilizando el asistente que incorpora) y una tabla con la siguiente estructura:

Podremos cambiar el nombre de la tabla y el nombre de los campos, también podremos utilizar una tabla existente. Ejecutando el script SQL anterior en la BD de Oracle creará la tabla «documentos» para realizar las pruebas oportunas. Para ejecutar el script podemos utilizar esta aplicación: AjpdSoft Administración Bases de Datos.

Tras tener la tabla creada con el campo BLOB, procederemos a abrir Visual Basic y a crear un nuevo proyecto para insertar y extraer documentos en Oracle. En la ventana de «Nuevo proyecto» seleccionaremos «EXE estándar» y pulsaremos «Abrir»:

Insertar y extraer documentos en una tabla Oracle con Visual Basic 6

Para que la aplicación funcione correctamente deberemos agregar las referencias necesarias. Para ello pulsaremos en el menú «Proyecto » – «Referencias» de Visual Basic:

Insertar y extraer documentos en una tabla Oracle con Visual Basic 6

Seleccionaremos la referencia FileMgr 1.1:

Insertar y extraer documentos en una tabla Oracle con Visual Basic 6

Si no aparece en la lista, pulsaremos en Examinar y seleccionaremos el fichero .dll copiado y registrado anteriormente:

C:/Windows/System32/SAFileMgr.dll

Seleccionaremos también Microsoft ActiveX Data Objects 2.6 Library:

Insertar y extraer documentos en una tabla Oracle con Visual Basic 6

Si no aparece en la lista, pulsaremos en Examinar y seleccionaremos el fichero ubicado en:

C:/Archivos de programa/Archivos comunes/system/ado/msado26.tlb

A continuación, añadiremos al formulario todos los componentes que estimemos necesarios para realizar la aplicación (TextBox, Frame, Label, CommandButton, etc). En nuestro caso hemos optado por este diseño:

Insertar y extraer documentos en una tabla Oracle con Visual Basic 6

Os mostramos el código de cada uno de los botones del formulario:

  • Para el botón «Insertar documento«:
  • Para el botón «Ejecutar«:
  • Para el botón «Ejecutar«:

Algunas capturas de pantalla de la aplicación en funcionamiento:

  • Tras añadir los datos de conexión, seleccionar un documento a insertar y pulsar el botón «Insertar documento»:
Insertar y extraer documentos en una tabla Oracle con Visual Basic 6
  • Tras añadir la consulta SQL para descargar un documento de la BD y pulsar el botón «Ejecutar»:
Insertar y extraer documentos en una tabla Oracle con Visual Basic 6
  • Tras seleccionar el destino, la consulta SQL y pulsar el botón «Extraer documento»:
Insertar y extraer documentos en una tabla Oracle con Visual Basic 6

Para realizar este artículo hemos utilizado: