quarta-feira, 24 de julho de 2002

Página que executa comandos SQL (um auxílio aos Administradores)

Observem como esse código simples pode ajudar na manutenção do seu site. Trata-se de uma página que executa comandos SQL, inclusive SELECT, trazendo a resposta numa tabela. Caso haja um erro na instrução SQL, achei por bem não tratá-lo e deixar por conta do IIS trazer-lhe a mensagem de erro proveniente do BD. Obviamente, só administradores AVANÇADOS devem ter acesso a essa página. Chega de papo e vamos ao que interessa:


'***************
'       SQL.asp
'***************
<%
response.buffer = true
response.expires = 10

if request.form("acao") = "ExecSQL" then
  Dim Conn
  set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open 'Ponha aqui sua string de Conexão
  set qrSQL = Conn.Execute(request.form("SQL"))
end if
%>

<html>
<head>
<title>Execução de Comandos SQL</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>


<body bgcolor="#FFFFFF">
<p><b>Execu&ccedil;&atilde;o de Comandos SQL</b></p>
<form name="formSQL" method="post" action="SQL.asp">
  <input type="hidden" name="acao" value="ExecSQL">
  <table width="80%" border="0" cellspacing="0" cellpadding="0">
    <tr align="center">
      <td height="166">
        <textarea name="SQL" rows="8" cols="100">
</textarea>
      </td>
    </tr>
    <tr>
      <td align="center" width="50%"><a href="Javascript: document.forms['formSQL'].submit()">Executar</a></td>
    </tr>
  </table>
 
<%if UCase(Mid(request.form("SQL"),1,6)) = "SELECT" then%>
<table width="100%" border="1" cellspacing="0" cellpadding="0" bordercolorlight="#666666" bordercolordark="#666666">
  <tr bgcolor="#FFFFCC">
 <%for i = 0 to qrSQL.Fields.Count - 1%>
    <td><%=qrSQL.Fields(i).name%>&nbsp;</td>
 <%next%>
    </tr>
 <%while not qrSQL.EOF%>
     <tr>
  <%for i = 0 to qrSQL.Fields.Count - 1%>
     <td><%=qrSQL.Fields(i)%>&nbsp;</td>
  <%next%>
     </tr>
 <%qrSQL.MoveNext%>
 <%wend%>
  </table>
<%end if%>
<%
set qrSQL = nothing
set Conn = nothing
%>
</body>
</html>



Esta matéria foi postada originalmente no ASP4Developers por Adriano Nântua, que na época era "Engenheiro de software e analista de sistemas; Desenvolvedor ASP, Delphi, C/C++ e Java/JSP/Servlets; InterBase fan; Linux fan; Alvirrubro inveterado.". Hoje, vai saber...

1 comentários:

André Guergolet disse...

[Enviado originalmente em 28/jul/2002 06:58:49]:

A minha página estava travando o servidor.
set qrSQL = Conn.Execute(request.form("SQL"))
Isso faz com que ao rodar um Upd/Ins/Del o recordset fica esperando o retorno e trava o servidor.