Cuando desarrollamos una aplicación web con ASP y atacamos a una base de datos Access, nos vemos en la constante necesidad de tener que descargar y volver a colgar por FTP nuestro archivo MDB para poder ir revisando que las actualizaciones de los datos se han efectuado correctamente.

Si la BD es voluminosa, ese proceso se vuelve tedioso, y disminuye nuestra productividad.

Hace algunos años desarrollé una sencilla página que se encargaba de recibir consultas SQL, lanzarlas contra la base de datos, y devolvernos la respuesta en HTML. De pura casualidad hoy la he encontrado, y me he decidido a hacerla pública para todo aquel que le haga falta.

Este simple script, de menos de 2 Kb, se encargará precisamente de ahorrarnos el trabajo que representa descargar decenas de veces el mismo archivo MDB para revisar su estado.

Simplemente debereis cambiar el nombre de archivo MDB al que accede (lo he puesto en negrita), y colgar el archivo en algún sitio de vuestro servidor. Una vez colgado, entrando por HTTP a la página query.asp podremos ejecutar cualquier tipo de consulta sobre nuestra base de datos.

Desconozco si hoy en día existe alguna herramienta similar al phpMyAdmin, pero para entornos ASP+Access, es posible que exista, y en ese caso, superará con creces a mi Lanzador de Queries; pero igual sigue sin haber ninguna, o deseais algo más sencillo y fácil de instalar, o simplemente os apetezca leer algo de código ASP…

La idea es muy sencilla, y la implementación todavía más, aún así a mi personalmente, esta páginilla me ha salvado la vida más de una vez…

Descargar query.asp (1Kb comprimido en ZIP).

<html>
<head>
<title>Lanzador Universal de Queries v2.50. &copy; Copyright 2002-2004 Guti.</title>
</head>
<body onLoad="javascript:document.forms[0].q.focus();">
<%
sSQL=Ucase(Request.QueryString("q"))
If sSQL<>"" Then
nInicio=Timer
Set cnnConexion=Server.CreateObject("ADODB.Connection")
cnnConexion.Provider="Microsoft.Jet.OLEDB.4.0"
cnnConexion.Open Server.MapPath("TU_BD.mdb")
Response.Write("<center><b>Resultados de:</b><br>" & sSQL & "<br><br></center>")
On Error Resume Next
If Left(sSQL, 6)="SELECT" Then
Set rstListado=cnnConexion.Execute(sSQL)
Set errExcepcion=Err
Response.Write("<table border=1 align=""center""><tr>")
For Each oCampo In rstListado.Fields
Response.Write("<td><font size=1><b>" & oCampo.Name & "</b></font></td>")
Next
Response.Write("</tr>")
Do While Not rstListado.EOF
Response.Write("<tr>")
For Each oCampo In rstListado.Fields
Response.Write("<td valign=""top""><font size=1>" & oCampo & "</font></td>")
Next
Response.Write("</tr>")
rstListado.MoveNext
Loop
Response.Write("</table>")
rstListado.Close
Set rstListado=Nothing
Else
cnnConexion.Execute sSQL, iCuantos
Set errExcepcion=Err
Response.Write("<center><font size=1><b> " & iCuantos & " </b>registros afectados.</font></center>")
End If
nFin=Timer
Response.Write("<center><font size=1><b>" & FormatNumber(nFin-nInicio, 2 ,-1 ,0 ,-1) & "</b> segundos</font></center>")
If errExcepcion.Number<>0 Then
Response.Write("<b>Error " & errExcepcion.Number & "</b> (" & errExcepcion.Description & " " & ") al ejecutar la consulta.")
End If
On Error Goto 0
cnnConexion.Close
Set cnnConexion=Nothing
End If
Response.Write("<form method=""GET"" action=""query.asp""><center><textarea name=""q"" cols=70 rows=10>" & sSQL & "</textarea><br><input type=""submit""></center></form>")
%>
</body>
</html>