Desenvolvendo Web Sites com ASP - PARTE 7


Todos os inputs no formulário devem ter seu nome único que o identifica para uso do script ASP. Os Radio Buttons são uma exceção. Entre as opções dos Radio Buttons, somente um valor será passado para o script ASP, isto implica que todas as opções tenham o mesmo nome. O botão selecionado como default deve ser indicado com o comando CHECKED. Isso é importante porque o browser enviará ao ASP um nome e um valor referente ao botão selecionado pelo usuário. O browser não enviará para o ASP o texto que está associado com o botão. Como no exemplo abaixo, se o usuário checar o botão com o texto SALVADOR, o ASP receberá Cidade = SSA



<html><head>
<TITLE>formRadio.asp</TITLE>
</head><body bgcolor="#FFFFFF">
<form action="FormRadiorespond.asp" method="post">
<p>Radio Buttons </p><br><p>Exemplo 1</p>
<p>Qual regional você gostaria de visitar?</p>
<input TYPE="radio" NAME="Cidade" VALUE="SSA">Salvador
<input TYPE="radio" NAME="Cidade" VALUE="BSB">Brasilia
<input TYPE="radio" NAME="Cidade" VALUE="SPA" CHECKED>São Paulo
<br><br><input type="submit"><input type="reset">
</form><hr>
</body></html>

A resposta se parecerá com:

<html><head>
<TITLE>formradiorespond.asp</TITLE>
</head><body bgcolor="#FFFFFF">
<%minhaCidade = request.form("Cidade")
Select Case ucase(MinhaCidade)
case "SSA"
response.write "Salvador te espera no Carnaval"
case "BSB"
response.write "Brasilia te aguarda para o Impeachment do FHC"
case "SPA"
response.write "São Paulo é a cidade mais poluída, mas pode vir assim mesmo."
End Select%>
</body>
</html>



O objeto listbox é muito usado para facilitar a entrada do usuário. É apenas um lista pulldown.
<html><head>
<TITLE>FormListBox.asp</TITLE>
</head><body bgcolor="#FFFFFF">
<form action="FormListBoxRespond.asp" method="post">
<SELECT NAME="Estado">
<OPTION SELECTED VALUE="DF">Distrito Federal</OPTION>
<OPTION value="BA">Salvador</OPTION>
<OPTION value="RJ">Rio de Janeiro</OPTION>
<OPTION value="outros">O Resto!</OPTION>
<input type=submit>
</form><hr></body></html>



A resposta se parecerá com:

<html><head>
<TITLE>formlistboxrespond.asp</TITLE>
</head><body bgcolor="#FFFFFF">
<%meuEstado = request.form("Estado")
Select Case ucase(meuEstado)
case "DF"
response.write "Brasilia te espera no final do mês."
case "BA"
response.write "O Carnaval está chegando..."
case else
response.write "nenhum compromisso agendado..."
End Select%>
</body>
</html>

  BANCO DE DADOS NA WEB


Banco de Dados é a razão para muitos desenvolvedores utilizar o ASP e abaixo está colocado exemplos e formatos típicos para manipular dados.


Via DSN e sem DSN Através de consultas SQL
Preenchidas através de banco de dados

Em um banco de dados com o comando SQL insert Into Em um banco de dados com o método ADO add new
Inclui o display de tabelas vinculadas a um formulário que rodam scripts que atualizam registros.

Em um banco de dados.





Qualquer script ASP que precisa conectar em um banco de dados, deve primeiramente abri-lo no servidor. Para isso existem duas formas:
uma conexão via DSN uma conexão sem DSN

Uma conexão via DSN requer que o Administrador do banco ou da rede, configure um DSN no servidor Internet/Intranet usando o Painel de Controle (ODBC 32 bits) ou utilize um componente ASP que implementado no seu script pode fazer mudanças na registry do servidor e criar o DSN necessário. Esses componentes são de terceiros e podem ser encontrados em sites especializados em ASP.
Conexões via DSN geralmente requerem um nome de DSN, um usuário e uma senha. Abaixo temos o código que abre um banco com DSN igual a "estudante", usuário igual a "estudante" e uma senha igual a "magic". Isso segue o mesmo procedimento realizado nos relatórios do sistema de pagamento.
set conntemp=server.createobject("adodb.connection")
conntemp.open "estudante","estudante","magic"
set rstemp=conntemp.execute("select * from autor")

O que acontece se não tivermos um DSN? Se você conhece o nome do arquivo (baseado em databases como Access, Paradox, FoxPro, etc.) ou o nome do Data Source (SQLserver por exemplo) tudo pode ser resolvido. Abaixo está uma maneira de abrir um Data Source sem um DSN. Note que você deve conhecer o path completo do arquivo no servidor, isto é, msapgt.mdb não é suficiente. É preciso ter "Z:\users\pagamento\msapgt.mdb". Existe uma função no ASP chamada server.mappath que pega um nome de arquivo e retorna o path completo do arquivo no servidor, mas não é muito segura.
set conntemp=server.createobject("adodb.connection")
cnpath="DBQ=" & server.mappath("sua_tabela.mdb")
conntemp.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & cnpath
set rstemp=conntemp.execute("select * from autor")

Aqui estão os tipos mais comuns de nomes para drives ODBC que você pode precisar: Para Access --> driver = {Microsoft Access Driver (*.mdb)};
Para SQL -----> driver = SQL Server;





Esta página demonstra a utilização de tabela construída a partir de uma consulta SQL.
<TITLE>dbtable.asp</TITLE>
<body bgcolor="#FFFFFF"> 3 <%
' Programa ASP que se comunica com um banco de dados
set conntemp=server.createobject("adodb.connection")
' DSN, usuário e senha
conntemp.open "Student","student","magic"
set rstemp=conntemp.execute("select * from authors where AU_ID<100")
qtde_campos=rstemp.fields.count -1 10 %>
<table border=1>
<tr>
<% 'Coloca o cabeçalho de cada coluna com o nome do campo
for i=0 to qtde_campos %>
15 <td><b><%=rstemp(i).name %></B></TD>
16 <% next %> 17 </tr>
<% ' Preenche a tabela com os registros
do while not rstemp.eof %>
<tr>
<% for i = 0 to qtde_campos%>
<td valign=top><% = rstemp.fields(i).value %></td>
<% next %> 24 </tr>
<% rstemp.movenext
loop
conntemp.close%>
</table>
</BODY>
</HTML>





Esta página mostra a funcionalidade de mostrar uma list box através de uma consulta SQL. O exemplo abaixo é o mais simples possível. Existem outros tipos utilizando Múltiplas List Boxes e Modularidade. Os exemplos utilizam um DSN, mas você pode executá-los sem.
<html><head>
<TITLE>dblist.asp</TITLE>
</head><body bgcolor="#FFFFFF"> 4 <%
' Conexão com o banco de dados
set conntemp=server.createobject("adodb.connection")
' DSN usuário senha
conntemp.open "Estudante","Estudante","magic"
set rstemp=conntemp.execute("select autor from autores where AU_ID<100") 10 %>
<Form>
<Select>
<% ' Loop para preencher os nomes
do while not rstemp.eof %>
<option> <%=RStemp(0)%> </option>
<% rstemp.movenext
loop
conntemp.close%>
</Select>
</form>
</BODY>
</HTML>





Esta página demonstra como adicionar registros em um banco de dados com um statement sql. Para melhor entender o exemplo, suponha que a página chamada seja: http://www.geap.com.br/tutorial_asp/asp_dbnewSQL.asp?nome="Alexandre Barreto" &id=9000&ano=1974
<TITLE>dbnewrecSQL.asp</TITLE>
<body bgcolor="#FFFFFF">
<HTML> 4 <%
on error resume next
aunome=request.querystring("nome")
auano=request.querystring("ano")
auID=request.querystring("ID")
Set Conn = Server.CreateObject("ADODB.Connection")
' DSN usuário senha
conn.open "Estudante","Estudante","magic"
SQLStmt = "INSERT INTO autors (AU_ID,autor,ano_nasc) "
SQLStmt = SQLStmt & "VALUES (" & auid
SQLStmt = SQLStmt & ",'" & aunome & "'"
SQLStmt = SQLStmt & "," & int(auano) & ")"
Set RS = Conn.Execute(SQLStmt)
If err.number>0 then
response.write "Ocorreram Erros:" & "<P>"
response.write "Erro Número =" & err.number & "<P>"
response.write "Descrição =" & err.description & "<P>"
response.write "Help Context =" & err.helpcontext & "<P>"
response.write "Help Path =" & err.helppath & "<P>"
response.write "Native Error =" & err.nativeerror & "<P>"
response.write "Source =" & err.source & "<P>"
response.write "SQLState =" & err.sqlstate & "<P>"
else
response.write "Não ocorreram erros!!" & "<P>"
end if
IF conn.errors.count> 0 then
response.write "Ocorreram erros no banco de dados" & "<P>"
for counter = 0 to conn.errors.count
response.write "Número " & conn.errors(counter).number & "<P>"
response.write "Descrição -> " & conn.errors(counter).description & "<P>"
next
else
response.write "Não ocorreram erros no banco de dados !" & "<P>"
end if
Conn.Close 39 %>
40 </BODY></HTML>



Comentários