Mundo Web
manuales - recursos - graficos - programación...

Home - ASP -  Curso práctico - Capítulo 6   - 1 - 2 -  3

Curso práctico de ASP (VI)
por Luciano Moreno, del departamento de diseño web de BJS Software.


Acceso a bases de datos con ASP.-

En el estado actual del desarrollo, cabe más hablar de aplicaciones web que de páginas web. Efectivamente, desde los sitios corporativos y de comercio electrónico hasta las páginas personales, cada vez se hace más uso de lenguajes de programación avanzados, del uso de componentes pre-diseñados que facilitan la interoperatividad y del acceso y manejo de complejas bases de datos que almacenan la información, verdadero patrimonio de toda entidad on-line.

El lenguaje ASP nos ofrece un amplio espectro de objetos, colecciones y propiedades que nos van a permitir no sólo la lectura y presentación de datos contenidos en BBDD, sino también la creación, modificación y eliminación en tiempo real de nuevas tablas y registros.

Para ello se han desarrollado una serie de tecnologías que se dependen unas de otras y complementan entre sí, obedeciendo a la modularidad exigida por los modernos lenguajes de programación.

Así, en el trabajo con ASP y BBDD vamos a encontrarnos nuevos conceptos que es necesario entender de forma clara si queremos llegar a programar páginas capaces de interoperar con datos en tiempo real de forma correcta. Ese va a ser el objetivo principal de esta entrega de nuestro curso.

Herramientas de trabajo.-

Dos son los elementos que aparecen a primera vista en nuestro escenario de trabajo: una página ASP y una base de datos. Ahora bien, estos elementos se encuentran inicialmente aislados entre sí, no están interconectados, y además, hablan diferente idioma, por lo que no pueden entenderse de forma directa.

Necesitamos entonces en primer lugar un elemento de unión que permita la comunicación entre la página ASP y las bases de datos. Para solventar esto, los diferentes fabricantes de estas (Microsoft, Oracle, Informix, etc.) han creado una serie de librerías específicas (drivers) capaces de implementar la conexión deseada. Generalmente estos drivers se instalan de forma automática con los Sistemas Operativos más comunes, aunque podemos instalar luego otros, si nos hacen falta.

Para poder usar estos componentes de unión es preciso indicar a nuestro Sistema Operativo (el local o el del servidor web) qué fuente de datos debe usar y qué driver, lo que se puede conseguir bien directamente, declarando todos estos elementos en el código ASP, bien mediante una declaración DSN a través del Panel de Control (lo explicamos luego), lo que nos permitirá usar las librerías con tan sólo hacer referencia a un nombre identificativo de la conexión.

Bueno, ya están conectadas la página ASP y la base de datos. Ahora, ¿Cómo se entienden entre ellas?. Es necesario el uso de un lenguaje estándar que ambas partes conozcan, que sirva de interprete, y que sea capaz de decir a la base de datos qué necesita hacer la página ASP. Este lenguaje va a ser SQL (Lenguaje Estructurado de Consulta), del que veremos en sucesivas entregas sus instrucciones más comunes.

Un esquema general de todo este proceso lo tenéis en la siguiente imagen:

Acceso a una base de datos

Vamos a pasar entonces a explicar con más detalle cada uno de los personajes de esta historia.

Bases de Datos.-

Una base de datos está formada por un conjunto de tablas en las que se almacenan datos de cualquier tipo. Las filas de estas tablas se denominan registros, y las columnas campos. Los registros de una tabla están formados pues por una serie de campos, teniendo todos los registros de una misma tabla los mismos campos (aunque puedan tener campos vacíos, si así lo permitimos), y formando cada uno de ellos una entidad propia. En la siguiente imagen podéis ver el aspecto de una tabla de datos:

Aspecto de una tabla de Access

Una base de datos puede estar formada por multitud de tablas diferentes, llegando un momento en el que se pueden producir repeticiones de un mismo campo en diferentes tablas, lo que trae consigo una redundancia de datos que deriva en un mayor peso de los archivos, dificultades de actualizaciones de datos, incongruencia entre ellos, etc.

Para evitar esto se crearon las Bases de Datos Relacionales, en las que se define en cada tabla un campo de referencia, de tal forma que podemos luego relacionar diferentes tablas que tengan alguno de estos campos en común, con lo que se evitan los problemas antes mencionados.

Para gestionar las bases de datos y poder manejarlas con comodidad se han desarrollado multitud de aplicaciones gestoras de bases de datos, entre las que caben destacar Microsoft Acces, SQL Server, Oracle, Informix, MySQL, etc.

No es nuestro propósito el desarrollar un tema sobre bases de datos relacionales, pero sí debemos decir que son las más usadas en la actualidad, y las que vamos a utilizar en nuestro curso como base de desarrollo, concretamente las bases de datos de Microsoft Access, aplicación de uso común entre los usuarios domésticos.

ODBC.-

Para poder acceder a diferentes orígenes de datos a través de una misma interface de desarrollo (API) en programación ASP y en sistemas Microsoft se usa ODBC (Conectividad Abierta a Bases de Datos), conjunto de componentes encargados de establecer las conexiones de forma transparente al usuario, a través del driver adecuado a la base de datos accedida.

ODBC es la interfaz de aplicaciones estándar definida por Microsoft, para conexiones entre aplicaciones y bases de datos en sistemas de bases de datos tanto relacionales como no relacionales, utilizando SQL como lenguaje de consulta.

Hay dos formas básicas de implementar una conexión ODBC:

Declarando la conexión ODBC mediante un nombre de origen de datos (DSN).

Este sistema se implementa desde el Panel de Control de la máquina en la que se encuentre el servidor web, apartado Conexiones ODBC de 32 bits (Orígenes de Datos), pestaña DSN del sistema, en dónde deberemos indicar un nombre para la nueva conexión, el tipo de driver apropiado a la base de datos que usaremos y la ruta de acceso a la misma, como podéis ver en la siguiente imagen:

Configuración ODBC para Access

Una vez hecho esto, lo único que tendremos que hacer en nuestra página ASP para referirnos a la conexión a la base de datos será referenciarla por el nombre DSN que le hayamos dado.

Un aspecto importante a tener en cuenta es que el alta de un nuevo DSN hay que hacerlo en la máquina en la que corra el servidor web, por lo que si queremos usar un acceso de éste tipo en un servidor de Internet, deberemos solicitar al administrador del mismo que nos dé el alta, cosa que normalmente sólo es posible en servidores de pago.

Declarando la conexión directamente, en el código de la página.

Mediante este sistema no nos hace falta declarar ningún DNS, aunque es más compleja de implementar a nivel de código. Como ventaja, la conexión se ejecuta de forma más rápida.

Consiste en declarar la conexión en el código de la página ASP, debiendo aparecer referenciados en la declaración el tipo de driver de la base de datos a conectar y la ruta de ésta. La sintaxis general es del tipo:

Nombre_Conexion.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=ruta_base_datos"

Donde Nombre_Conexion es un nombre que hemos dado nosotros a nuestra conexión y ruta_base_datos es la ruta de localización de nuestra base de datos en el servidor web, del tipo "C:\directorio\base_datos.mdb".

La ruta de la base de datos puede ser muy larga y compleja, por lo que para simplificar su declaración podemos usar el objeto Server.Mappath, que nos devuelve la ruta en la que se está ejecutando el script. Con este truco, la declaración de la conexión nos quedaría:

Nombre_Conexion.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & Server.Mappath("ruta_base_datos")

En la que ruta_base_datos será ahora del tipo “/carpeta/base_datos.mdb"

OLEBD.-

OLEDB es la evolución de ODBC, y tiene como objetivo resolver ciertas restricciones de ésta. Autoriza el acceso a todo tipo de datos, permitiendo administrar el aspecto de tener distribuidas las fuentes de datos, y tiene en cuenta las restricciones de la web. OLEDB no precisa declaraciones DSN, por lo que es más rápida y más eficiente.

La sintaxis general para declarar una conexión depende del tipo de base de datos usada:

Para Microsoft Access 97:

Nombre_Conexion.Open "Provider=Microsoft.Jet.OLEDB.3.51; Data Source=C:\directotios\database.mdb;"

Para Microsoft Access 2000:

Nombre_Conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\directotios\database.mdb;"

Para Microsoft SQL Server:

Nombre_Conexion.Open "Provider=SQLOLEDB; Data Source=sql_server; Initial Catalog=sql_database; User Id=username; Password=password;"

 


siguiente

Home - ASP -  Curso práctico - Capítulo 6   - 1 - 2 -  3