
por Fernando D'Angelo
8. dezembro 1999 00:00
Consultando Banco de dados Nesta terceira parte, iremos abordar a consulta aos bancos de dados. Primeiramente, iremos abordar a correta sintaxe das strings SQL, e em seguida, como utilizar estas strings com ASP. Para tanto, estaremos disponibilizando alguns exemplos. A partir de uma base de dados existente, é possível a consulta utilizando filtros, como por exemplo, gerar uma consulta numa tabela de cadastro onde mostrando todos os registros cujo estado é SP. Seguem abaixo alguns exemplos de strings SQL de consultas: sintaxe: "select [campo1, campo2, campo3,...] from tabela where campo1 = 'valor' and(or) campo2 = 'valor2'" Veja os exemplos de instruções SQL: "select * from cadastro" - seleciona todos os campos de todos os registros da tabela cadastro. "select nome, email, telefone, estado from cadastro" - seleciona os campos nome, email, telefone e estado de todos os registros da tabela cadastro. "select nome, email, estado from cadastro where estado = 'SP' " - seleciona os campos nome, email e estado apenas dos registros cujo estado é SP. "select nome, email, estado, idade from cadastro where idade = '23' and estado = 'SP' " - seleciona os campos nome, email, estado e idade apenas dos registros cuja idade é 23 e o estado é SP. "select nome, email, estado, idade from cadastro where estado = 'SP' or estado = 'AM' " - seleciona os campos nome, email, estado e idade apenas dos cadastros onde o estado é SP ou AM. "select nome, email, estado, idade from cadastro where idade = '23' or estado = 'SP' " - seleciona os campos nome, email, estado e idade apenas dos cadastros onde o estado é SP ou a idade é 23. Uma vez feita a consulta, uma "cópia" da tabela, contendo apenas os registros selecionados é gerada na memória do servidor, e então o ASP tem acesso a essa "cópia" e não à tabela de onde esses valores realmente se encontram. Veja o exemplo a seguir: <% sqlstmt = "select nome, email, estado, idade from cadastro where idade = '23' and estado = 'SP' " Set conn = server.createobject("adodb.connection") 'abre a conexão com o banco de dados conn.open "nome_da_ligacao_ODBC" 'avisa qual banco de dados será utilizado na consulta set rsquery = conn.execute(sqlstmt) 'executa a instrução SQL contida na variavel sqlstmt while not rsquery.eof %> <%=rsquery("campo1").value%> <% rsquery.movenext wend %> A rotina acima seleciona os campos nome, email, estado e idade de todos os registros cujo campo idade tem o valor 23 e o estado valor SP. PS: para criar a string SQL, você pode utilizar soma de strings e variáveis, o que permite que strings SQL sejam criadas dinamicamente, a partir de um valor inserido num formulário. Veja o exemplo: Estrutura do Banco de Dados: nome do banco de dados: teste.mdb path do banco de dados: c:\teste nome da conexao ODBC: TESTE_ODBC tabela a ser consultada: agenda campos da tabela agenda: nome, email, cidade, estado, idade Formulario para insercao do nome
<form method="post" action="consulta.asp">
<input type="text" name="chave" value="">
<input type="submit" name="submit" value="Gerar Consulta">
</form>
abaixo, script de consulta <% 'criacao da string SQL sqlstmt = "select * from agenda where nome = '" & request.form("chave") & "' order by idade" set conn = server.createobject("adodb.connection") conn.open "TESTE_ODBC" set rsquery = conn.execute(sqlstmt) %>
<table>
<%
while not rsquery.eof %>
<tr><td><%=rsquery("nome")%></td><td><%=rsquery("email")%></td><td><%=rsquery("idade")%></td></tr>
<%
rsquery.movenext
wend
rsquery.close
set rsquery = nothing
set conn = nothing
%>
</table>
|