Conceptos básicos de acceso a bases de datos

El acceso a bases de datos es uno de los recursos más utilizados en las páginas ASP, la facilidad con la que puede crear un sitio web dinámico queda patente en este taller en el que aprenderá los conceptos básicos sobre conexión a bases de datos.

Introducción

Las páginas ASP con acceso a datos permiten interactuar con la información de una base de datos ya sea para obtener información y mostrarla al usuario o bien para actualizar su contenido.

Son muchas las aplicaciones de este concepto en los sistemas de información actuales por ejemplo, una empresa que vende sus artículos por Internet debe disponer de páginas en las que se visualicen los datos de sus productos, disponibilidad, precio, etc. y almacenar los pedidos de sus clientes. Al tratarse de información en continua actualización la presencia de una base de datos y su consulta dinámica se hacen indispensables.

Para conectarse a una base de datos, las páginas ASP utilizan la tecnología ADO (ActiveX Data Objects) y pueden accederse a sistemas de gestión de bases de datos comatibles con ODBC (entre otras SQL Server, Access, Informix o Oracle.)

Conexión

Pueden utilizarse dos sistemas de conexión a Base de Datos:

  • Mediante DSN
  • Sin DSN

DSN

Este sistema consiste en definir un identificador de la conexión mediante el driver ODBC accesible desde el Panel de Control. Posteriormente, desde las páginas ASP, se practica el acceso mediante un string de conexión que incluye el identificador antes mencionado.

Para crear un DSN en Windows, haz clic en el botón Inicio selecciona la opción Panel de Control del menú Configuración. En la ventana del Panel de Control selecciona Fuentes de Datos ODBC y accede a la pestaña DSN de Sistema. Selecciona la base de datos que quieres añadir y define un nombre a la conexión y la localización física de la base de datos

Sin DSN

Este sistema requiere almacenar directamente el archivo de la BD (habitualmente de Access) en un directorio del servidor. De este modo, en la conexión se utilizará un String un poco más complejo ya que deben identificarse tanto el driver como el directorio físico completo de la base de datos.

Estos son los 3 pasos para realizar la conexión

  • Crear el objeto para conectarase a la Base de datos mediante la instrucción Server.CreateObject("ADODB.Connection")
  • Definir la conexión (con/sin DNS), mediante la instrucción objConn.ConnectionString
  • Abrir la conexión mediante la instrucción: objConn.Open
Instrucciones de conexión a una base de datos

<%
  Dim objConn
  
  'Creación del objeto que realiza la conexión a la base de datos
  Set objConn = Server.CreateObject("ADODB.Connection")
  
  'Proporcionar al objeto la información correspondiente a la conexión ODBC a utilizar
  'Mediante DNS
  objConn.ConnectionString = "DSN=bdProgramacion" 
  'Sin DNS
  objConn.ConnectionString = "DBQ=C:mis documentosprogram.mdb;DRIVER={MS Access (*.mdb)}" 
  

  'Abrir la conexión
  objConn.Open  
   %>

El lenguaje SQL

Mediante el lenguaje SQL (Structured Query Language) puedes interactuar con los motores de base de datos relacionales para obtener y modificar la información almacenada en la base de datos.

La información en una base de datos se almacena en tablas que a su vez se componen de columnas o campos. Para realizar una consulta a una tabla deberá utilizar la instrucción SELECT. En una consulta básica en la clasula SELECT se indican las columnas a visualizar, en la claúsula FROM, la tabla de la cual obtener los datos por último en la claúsula WHERE se indican las restricciones a aplicar.

Instrucciones SQL de CONSULTA

SELECT * FROM clientes WHERE poblacion="Sevilla"
SELECT nombre FROM Productos WHERE precio > 2000

Las operaciones de insertar, actualizar y borrar información de la base de datos también se realizan mediante instrucciones SQL concretamente utilizaremos INSERT, UPDATE y DELETE respectivamente.

Por ejemplo, la sentencia UPDATE se compone de la clausula SET para indicar el nuevo valor de los campos y WHERE para indicar los registros sobre los que se desea practicar la actualización.

Instrucciones SQL de MODIFICACIÓN: INSERT

INSERT INTO Productos (nombre, precio, distribuidor)
VALUES ("Auriculares", 1730, "batech")

Instrucciones SQL de MODIFICACIÓN: UPDATE

UPDATE Productos
SET precio = precio + (0,02 * precio)
WHERE distribuidor="ACME"

Instrucciones SQL de MODIFICACIÓN: DELETE

DELETE FROM Productos
WHERE distribuidor="ACME"

Acceso a los datos

A continuación, practicará las instrucciones para que desde la página ASP pueda acceder a la información de la base de datos y mostrarla en la ventana del navegador del usuario

Suponga que tiene una tabla de Productos con las siguientes columnas: nombre, precio y distribuidor.

En la página ASP a crear visualizará aquellos productos cuyo precio sea inferior a los 30 Euros y para realizar esta consulta utilizará el objeto ADODB.Recordset

Instrucciones de acceso a los datos

<%
Dim objConn
Dim objRS
Dim strSQL

  Set objConn = Server.CreateObject("ADODB.Connection")
  objConn.ConnectionString = "DSN=gestion" 

'Inicialización del objeto Recordset
Set objRS = Server.CreateObject("ADODB.Recordset") 

' Construcción de la consulta mediante SQL
strSQL = "SELECT nombre, precio FROM productos WHERE precio < 30" 

' ejecución de la consulta
objRS.Open strSQL, objConn 
%>

Como resulta de la anterior ejecución, el servidor obtiene un conjunto de registros procedentes de la base de datos y posiciona el cursor en el primero de ellos. El objeto recordset proporciona mecanismos para acceder a los diferentes campos y mover el cursor entre los diferentes registros. Puede conocer cómo mediante el siguiente código

Visualización de datos

<table>
 <tr><td>NOMBRE</td><td>PRECIO</td></tr>
<%
  'Bucle hasta encontrar EOF (final del cursor)
  Do Until objRS.EOF = True
     Response.Write "<tr>"
     'objRS("nombre") y objRS("precio") contienen los valores
     'de los campos nombre y precio de la Base de datos
     Response.Write "<td>Nombre= " & objRS("nombre") & "</td>"
     Response.Write "<td>Precio = " & objRS("precio") & "</td>"
     Response.Write "</td></tr>"

     'Mover el cursor al siguiente registro. 
     'Cuando ya esté en el último registro EOF valdrá cierto.
     objRS.MoveNext
  Loop 
%>
</table>

Cerrar conexiones

Es una práctica recomendable cerrar y borrar los objetos recordset y de conexión creados en la página ASP. Para ello se utiliza el código indicado a continuación:

Cerrar conexión

<%
  'Cerraar el objeto Recordset
  objRS.Close

  'Eliminar el objeto Recordset
  Set objRS = Nothing


  'Cerrar el objeto de la conexión
  objConn.Close

  'Eliminar el objeto de la conexión
   Set objConn = Nothing 
%>

ADOVBS.INC

ADOVBS.INC es un archivo que se incluye con el servidor Internet Information Server y en el que se definen todas aquellas constantes utilizadas con objetos del ADO.

La inclusión de archivos es muy aconsejable para realizar código legible y rehutilizable dos características imprescindibles en páginas de acceso a datos. Para ello se utiliza la instrucción include virtual que pertenece al juego de instrucciones del protocolo HTTP y cuya sintaxis es la siguiente:

<%
   <!-- #include virtual="/adovbs.inc" --> 
%> 

En este caso deberá tener almacenado el archivo ADOVBS.INC en la raiz del directorio de su aplicación.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO