|
|
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Parceiros - CSS para Web Design - S.O.S Designers - Slackware-Brasil - Crie seu Web site - Oficina da Net |
Tratar erros em sentenças SQL executadas em ASPComo fazer para que as sentenças SQL mal formadas não dêem erros nas páginas ASP e possam ser tratadas para informar ao usuário ou ao administrador. Veremos um pequeno workshop que poderá servir para fazer nossas aplicações ASP mais completas e compactas. Trata-se de evitar um erro bastante freqüente na programação de páginas, que ocorre quando se tenta executar uma sentença SQL mal formada. Nestes casos, o servidor nos informa do erro, embora sempre ofereça informação que não serve muito para o visitante, inclusive pode lhe confundir. Seria preferível que nós tratássemos o erro e informássemos por nossa conta ao usuário, de uma maneira agradável e clara.
Para isso, vamos realizar um tratamento de erros em ASP, que evitará que a página se detenha diante de um erro e nos permita fazer coisas se isto ocorrer. On error Resume Next conn.execute(ssql) if Err<>0 then ' realizo acoes para tratar o erro end if Com a primeira linha estamos dizendo a ASP que se ocorrer um erro não ser informado dele, e sim, que continue. Na segunda linha executamos uma sentença SQL. No seguinte bloco se avalia a variável de sistema "Err", que armazena um possível erro. Se a variável vae qualquer coisa diferente de 0, então é porque ocorreu um erro. Portanto, no caso positivo do if poderemos realizar qualquer tipo de ação para tratar o erro. Tratar o erro de uma maneira simples Para tratar o erro de uma maneira fácil de implementar, dentro do if poderíamos chamar a uma função que se encarregasse de fazer todas as ações frente a um erro. Essa função poderia receber o erro e introduzi-lo em um log de erros. Poderia também informar por correio ao administrador e obviamente, mostrar uma mensagem de erro claro ao visitante. sub tratar_erro_ssql(ssql,meuerro) 'trato o possivel erro 'coloco a sentenca errada em um arquivo de texto 'criamos o textstream do arquivo arquivo= request.serverVariables("APPL_PHYSICAL_PATH") & "erros\log.txt" set confile = createObject("scripting.filesystemobject") set fich = confile.OpenTextFile (arquivo,8) 'escrevo no arquivo fich.WriteLine(ssql) fich.WriteLine(Err.Description) fich.WriteLine("-----------------------------") 'fechamos o arquivo file.close() 'vou informar ao administrador set obj_mail = server.createObject("Persits.MailSender") assunto_mensagem = "Erro SQL na página" email_origem_mensagem = "correio@dominio.com" texto_origem_mensagem = "Empresa" txt_mail = "Detectamos um erro. Consulte o log de erros para encontrar descrição." txt_mail = txt_mail & VBNEWLINE & VBNEWLINE & ssql txt_mail = txt_mail & VBNEWLINE & VBNEWLINE & meuerro obj_mail.host = "smtp.dominio.com" obj_mail.from = email_origem_mensagem obj_mail.FromName = texto_origem_mensagem obj_mail.Subject = assunto_mensagem obj_mail.AddAddress email_alertas obj_mail.body = txt_mail 'o envio obj_mail.send 'vou informar ao usuario response.write "Sentimos muito, mas sua ação não pode ser realizada. Entre em contato com os administradores para obter ajuda." end sub Esta função faz tudo o que foi comentado para tratar do erro. Primeiro escreve o log de erros em um arquivo de texto, logo envia um correio eletrônico ao administrador e finaliza mostrando um erro ao usuário. A função está toda comentada para que se entenda melhor tudo o que foi realizado (como enviar o e-mail através de ASP ou abrir o arquivo de texto) que já foi visto em outros workshops de ASP.
Autoria e outras referências sobre este artigo Dentro deste artigo: + 1 manual relacionado + 2 Categorias relacionadas + 1 Comentário sem rever
Manuais relacionados com este artigo Dentro de Workshop de ASP Seguinte: Validar uma data com ASP Anterior: Escrever um arquivo Excel através de ASP Categorias relacionadas Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo: + Entrar em ASP+ Entrar em Scripts em ASP Comentário sem rever
|
| Sobre nós | Copyright | Anuncie | Entrar em contato | <criarweb> |