Cómo acceder a una tabla de Oracle mediante ASP y ODBC. Explicamos paso a paso y con el código fuente en ASP sobre cómo ejecutar consultas SQL y mostrar el resultado en HTML en un servidor con Internet Information Server (IIS). Explicamos cómo configurar el driver ODBC para conexión con Oracle XE y cómo crear un fichero ASP que muestre el contenido de una tabla Oracle en el servidor web.
- Instalación y configuración del servidor Web con IIS.
- Instalación y configuración del servidor con Oracle XE.
- Instalación, configuración y testeo del driver ODBC para Oracle XE.
- Creación e inserción de registros en una tabla de Oracle para las pruebas.
- Creación del fichero ASP que conectará a Oracle.
- Anexo.
Instalación y configuración del servidor Web con IIS (Internet Information Server)
En primer lugar configuraremos nuestro Servidor Web con IIS, con soporte para ASP (en Windows XP y IIS 5.1 se instala por defecto). Podremos ver un manual completo de instalación y configuración de IIS en el siguiente enlace:
Instalación y configuración del servidor con Oracle XE
Para este ejemplo realizaremos un acceso utilizando ASP a Oracle, versión XE. En el siguiente enlace explicamos cómo instalar Oracle XE en Windows XP:
En este otro artículo explicamos cómo instalar Oracle XE en GNU Linux Ubuntu, también válido para acceder mediante ASP y ODBC:
Instalación, configuración y testeo del driver ODBC para Oracle XE
Si el servidor de base de datos no está ubicado en el mismo equipo que el Servidor Web, tendremos que instalar el cliente para acceso a Oracle XE (si es la versión que estamos utilizando). Se puede descargar desde:
http://www.oracle.com/technology/software/products/database/xe/htdocs/102xewinsoft.html
A continuación deberemos crear el origen de datos ODBC, para que apunte al servidor de base de datos Oracle de nuestra organización. Para ello accederemos a «Inicio» – «Configuración» – «Panel de Control» – «Herramientas administrativas» – «Orígenes de datos (ODBC)». Pulsaremos «Agregar» en la pestaña «DSN de sistema»:
Seleccionaremos el origen de datos correspondiente al motor de base de datos que tengamos en nuestra organización, en nuestro caso «Oracle in XE»:
Nota: si no aparece el origen de datos deberemos instalarlo, en el caso de Oracle 10g Express Edition XE se puede descargar desde www.oracle.com.
Introduciremos los datos del Oracle ODBC Driver:
- Data Source Name: nombre del origen de datos (en nuestro caso «bdoracle»).
- Description: breve descripción del origen de datos (en nuestro caso «Acceso a BD Oracle mediante ASP») .
- TNS Service Name: nombre del servicio TNS de Oracle, aparecerá en el desplegable (en nuestro caso «XE»).
- User ID: usuario que se conectará a Oracle (en nuestro caso «system»). Por razones de seguridad es recomendable crear un usuario nuevo con permisos limitados sólo a las tablas a las que queramos acceder (a ser posible de consulta, no de moficación). De no ser así un atacante, por medio de inyección de SQL (aprovechando algún fallo en el código ASP), podría visualizar, modificar y eliminar datos de nuestra base de datos.
Para realizar una prueba de conexión pulsaremos en «Test Connection», nos mostrará la siguiente ventana, donde introduciremos el usuario y la contraseña y pulsaremos «OK»:
Si no ha habido algún error nos mostrará esta ventana:
Con el texto: «Connection successful».
Creación e inserción de registros en una tabla de Oracle para las pruebas
A continuación crearemos una tabla de prueba en Oracle XE y le insertaremos algunos registros. Para ello podremos utilizar cualquier aplicación que pueda ejecutar consultas SQL para un origen de datos especificado. En nuestro caso utilizaremos AjpdSoft Administración de base de datos:
Ejecutaremos las consultas SQL para la creación de las tablas y la inserción de los registros:
Para crear la tabla «prueba» hemos utilizado la consulta SQL:
1 2 3 4 |
create table prueba ( codigo float primary key, nombre varchar(100) not null, importe float default 0) |
Para insertar los registros en la tabla «prueba» hemos utilizado las siguientes consultas SQL:
1 2 3 4 5 |
insert into prueba (codigo, nombre, importe) values (1, 'Alonso Pérez', 1000) insert into prueba (codigo, nombre, importe) values (2, 'Fernando Alonso', 1500) insert into prueba (codigo, nombre, importe) values (3, 'El Rellano', 2200) insert into prueba (codigo, nombre, importe) values (4, 'Molina', 1500) insert into prueba (codigo, nombre, importe) values (2, 'AjpdSoft', 1500) |
Creación del fichero ASP que conectará a Oracle
A continuación crearemos el fichero ASP que mostrará los datos de la tabla «prueba»: el código para este fichero, que colocaremos en el Directorio Particular de IIS con el nombre «pruebaacceso.asp», es:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<% Dim conexion, rsTabla 'creamos un objeto de tipo "connection" para la 'conexión con el origen de datos ODBC set conexion = Server.CreateObject("ADODB.Connection") 'nos conectamos al origen de datos ODBC "bdoracle" conexion.Open "bdoracle","system","contraseña_system" 'creamos un objeto de tipo "recordset" (tabla) Set rsTabla = Server.CreateObject("ADODB.Recordset") consultaSQL ="SELECT * from prueba" 'asignamos al objeto "rsTabla" el resultado de la ejecución de la consulta SQL rsTabla.Open consultaSQL, conexion, 1 'Recorremos todos los registros del objeto recordset y mostramos su valor while not rstabla.eof codigo = rstabla("codigo") nombre = rstabla("nombre") importe = rstabla("importe") Response.Write "<b>Código: </b> " & codigo & "<br />" Response.Write "<b>Nombre: </b>" & nombre & "<br />" Response.Write "<b>Importe: </b>" & importe & "<br />" & "<br />" rstabla.MoveNext wend 'cerramos el recordset y la conexión rsTabla.close conexion.close 'liberamos los objetos Set conexion = Nothing Set rsTabla = Nothing %> |
Por tanto crearemos un fichero con cualquier editor de texto plano (como notepad), con el contenido anterior y que guardaremos con el nombre pruebaacceso.asp, en la carpeta donde tengamos ubicados los ficheros del servidor web, por defecto:
C:/Inetpub/wwwroot
Para probarlo abriremos una ventana del navegador de Internet y escribiremos la URL:
http://localhost/pruebaacceso.asp
Nota: «localhost» será el nombre de red (hostname) o la IP del equipo que tenga instalado IIS.
ANEXO
Tecnologías empleadas para realizar este artículo
Hemos utilizado un único equipo con las siguientes características:
- Procesador Quad core con 1.3 GHz/core.
- 2 GB de memoria RAM.
Para realizar este manual se ha utilizado IIS versión 5.1, Microsoft Windows XP, Oracle 10g Express Edition y AjpdSoft Administrador de BD.
Acceso a otros motores de base de datos con ASP
Para este artículo hemos utilizado Oracle XE, pero este ejemplo serviría para cualquier motor de base de datos que admita conexión por driver ODBC (Oracle, MySQL, Microsoft SQL Server, IBM DB2, Informix, Microsoft Access, Paradox, DBase, Ingres, SQLite, etc). Para ello será suficiente con instalar el cliente y el origen de datos ODBC correspondiente al motor utilizado.