Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Tratar errores en sentencias SQL ejecutadas en ASP


Cómo hacer para que las sentencias SQL mal formadas no den errores en las páginas ASP y se puedan tratar para informar al usuario o administrador.


22/2/05 - Vamos a ver un pequeño taller que puede servir para hacer nuestras aplicaciones ASP más completas y compactas. Se trata de evitar un error bastante frecuente en la programación de páginas, que ocurre cuando se intenta ejecutar una sentencia SQL mal formada. En esos casos, el servidor nos informa del error, aunque siempre ofrece información que no sirve de mucho al visitante, incluso despista. Sería preferible que nosotros tratásemos el error e informáramos por nuestra cuenta al usuario, de una manera agradable y clara.

Para ello vamos a realizar un tratamiento de errores en ASP, que evitará que la página se detenga ante un error y nos permita hacer cosas si ocurre.

On error Resume Next
conn.execute(ssql)
if Err<>0 then
' realizo acciones para tratar el error
end if

Con la primera línea estamos diciendo a ASP que si ocurre un error no informe de ello, sino que continúe. En la segunda línea ejecutamos una sentencia SQL.

En el siguiente bloque se evalúa la variable de sistema "Err", que almacena un posible error. Si la variable vale cualquier cosa distinto de 0, entonces es que ocurrió un error. Por tanto, en el caso positivo del if podremos realizar cualquier tipo de acción para tratar el error.

Tratar el error de una manera sencilla

Para tratar el error de una manera fácil de implementar, dentro del if podríamos llamar a una función que se encargase de hacer todas las acciones frente a un error.

Esa función podría recibir el error e introducirlo en un log de errores. Podría también informar por correo al administrador y por supuesto, mostrar un mensaje de error claro al visitante.

sub tratar_error_ssql(ssql,mierror)

'trato el posible error
'meto la sentencia erronea en un archivo de texto

'creamos el textstream del archivo
archivo= request.serverVariables("APPL_PHYSICAL_PATH") & "errores\log.txt"
set confile = createObject("scripting.filesystemobject")
set fich = confile.OpenTextFile (archivo,8)
'escribo en el archivo
fich.WriteLine(ssql)
fich.WriteLine(Err.Description)
fich.WriteLine("-----------------------------")

'cerramos el fichero
fich.close()

'voy a informar al administrador
set obj_mail = server.createObject("Persits.MailSender")
asunto_mensaje = "Error SQL en la página"
email_origen_mensaje = "correo@dominio.com"
texto_origen_mensaje = "Empresa"
txt_mail = "Hemos detectado un error. Consulte el log de errores para encontrar descripción."
txt_mail = txt_mail & VBNEWLINE & VBNEWLINE & ssql
txt_mail = txt_mail & VBNEWLINE & VBNEWLINE & mierror

obj_mail.host = "smtp.dominio.com"
obj_mail.from = email_origen_mensaje
obj_mail.FromName = texto_origen_mensaje
obj_mail.Subject = asunto_mensaje
obj_mail.AddAddress email_alertas
obj_mail.body = txt_mail
'lo envio
obj_mail.send

'voy a informar al usuario
response.write "Lo sentimos, pero tu acción no ha podido ser realizada. Ponte en contacto con los administradores para obtener ayuda."

end sub

Esta función hace todo lo comentado para tratar el error. Primero escribe el log de errores en un fichero de texto, luego envía un correo electrónico al administrador y finaliza mostrando un error al usuario. Está comentada para entenderla mejor y todo lo que hemos realizado (como enviar el email desde ASP o abrir el fichero de texto) lo hemos visto ya en otros talleres de ASP.

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada

 Autoría, licencia y acciones sobre este artículo

Informe de Miguel Angel Alvarez*
Director de DesarrolloWeb.com

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Taller de ASP

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Scripts en ASP


 Comentarios de los visitantes
Aun no hemos recibido comentarios de este artículo.
Puedes ser el primero en enviar tu comentario.



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Taller de ASP
Categorías
+Scripts en ASP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia