Bases de datos y ASP

Una de las principales ventajas que se tiene cuando estamos trabajando con páginas dinámicas es la de poder operar con bases de datos. Estas se gestionan con múltiples Gestores de Sistemas de bases de datos SGBD, como Access, MySQL, Sysbase, etc.

Para poder acceder a una base de datos (BD) necesitamos utilizar el componente ADO  (ActiveX Data Objects) el cual permite acceder a dichas bases de una forma sencilla.

Por otra parte necesitamos un lenguaje que permita entenderse entre los scripts y la BD, este lenguaje va a ser SQL . Al objeto de poder explicar el procedimiento, voy a utilizar una BD EN ACCESS  de nombre mi_bd almacenada en local.

Como paso previo hemos de configurar el servidor al objeto de poder enlazar la página dinámica con la BD. Para crear este vínculo, nos servimos de los conectores ODBC (Open DataBase Connectivity) los cuales establecen el enlace con la base de datos.

Una vez establecida la configuración anterior, desarrollaremos el correspndiente código. Para este ejemplo, he creado una pequeña base de datos en Access a la que he llamado  «directorio» y que consta de una sóla tabla a la que he denominado «example».

Para comenzar justo al principio del código ASP, declaramos las variables que se necesitan para establecer la conexión:

Dim miconexion, registros, mibd

A continuación la instrucción siguiente nos da la ruta completa de donde se encuentra la base de datos con la que vamos a trabajar:

mibd = Server.MapPath(«directorio»)

O bien establecemos en una variable «mibd» la dirección de nuestra base de datos, por ejemplo:

mibd = «C:\Nueva carpeta\directorio.mdb»

Establecemos el uso de nuestra conexión a nuestra base de datos:

Set conexion = Server.CreateObject(«ADODB.Connection»)

Abrimos la conexión utilizando el motor Microsoft.Jet.OLEDB.4.0:

conexion.Open «Provider=Microsoft.Jet.OLEDB.4.0;Data Source=» & directorio & «;»

Establecemos la selección mediante una sentencia SQL:

Set registros = miconexion.Execute(«SELECT * FROM example  ORDER BY nombre»)

Establecemos un bucle para recorrer todos los registros:

Do While Not registros.EOF

Para presentar los resultados volvemos a HTML

%>

<TR>
<TD><%= registros.Fields(«Id»).Value %></TD>
<TD><%= registros.Fields(«Nombre»).Value %></TD>
<TD><%=registros.Fields(«Edad»).Value %></TD></A>

</TR>

Continuamos con el bucle hasta el último registro, cuando acabe cerramos la conexión con Close.

<%

registros.MoveNext

Loop

registros.Close

Set registros = Nothing

miconexion.Close

Set miconexion = Nothing

%>

</TABLE>
</BODY>
</HTML>

Todo junto:

<HTML>
    <HEAD><TITLE>Leyendo una base de datos de Access con ASP</TITLE></HEAD>
    <BODY>

<TABLE BORDER=»1″>
<TD><B>Id<B></TD>
<TD><B>Nombre<B></TD>
<TD><B>Edad<B></TD>

<%

Dim mimiconexion, registros, mibd

‘mibd = Server.MapPath(«directorio»)

mibd = «C:\Nueva carpeta\directorio.mdb»

Set miconexion = Server.CreateObject(«ADODB.Connection»)

‘ Declaramos nuestra conexión a bases de datos.

miconexion.Open «Provider=Microsoft.Jet.OLEDB.4.0;Data Source=» & mibd & «;»

‘ Abrimos la conexión a través del OLE Driver.

Set registros = miconexion.Execute(«SELECT * FROM example ORDER BY example.Nombre»)

Do While Not registros.EOF

%>

<TR>
<TD><%= registros.Fields(«Id»).Value %></TD>
<TD><%= registros.Fields(«Nombre»).Value %></TD>
<TD><%=registros.Fields(«Edad»).Value %></TD></A>

</TR>

<%
registros.MoveNext

Loop

registros.Close

Set registros = Nothing

miconexion.Close

Set miconexion = Nothing

%>

</TABLE>
      </BODY>
      </HTML>

La parte más importante es donde establecemos los datos de la conexión, ya que depende sobre todo del Sistema Gestor de la base de datos. Hemos presentado un ejemplo simple con Access y OLE DB, si quisiéramos utilizar el driver de Access

Set miconexion = Server.CreateObject(«ADODB.Connection»)
miconexion.open «DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\mibasededatos.mdb»

Con DSN de archivo tendríamos el esquema:

<%
Set miconexion = Server.CreateObject(«ADODB.Connection»)
miconexion.open «FILEDSN=ADSN»

%>

Con DSN y si contraseñas:
<%
Set miconexion = Server.CreateObject(«ADODB.Connection»)
conexion.open «DSNname»
%>
Suponiendo que existe id y contraseña de usuario:
<%
Set miconexion = Server.CreateObject(«ADODB.Connection»)
conexion.open «DSNname»,»username»,»password»
%>

Deja un comentario