|
|
|

|

|
Dicas
|

|
ASP - Active Server Page (Miscelâneas)
|
|
 |
Título da Dica: Procura numa Base de Dados simples
|
 |
|
|
Postada em 27/10/2003 por ^HEAVY-METAL^
Bem, acho quase todos os programadores utilizam procuras na BD, por isso existe muitas maneiras de fazer o mesmo. Aqui esta uma maneira simples de o fazer.
ficheiro : Search_simples.asp
<% Response.buffer=true%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Procura BD</title> </head> <body>
<%' Aqui esta o form (pus as duas partes do script numa só, porque isso faz o programa mais rapido)
' Aqui vimos se o form jà foi submitido ou não if request("nome")="" And request("ultimo_nome")="" then %> <form method="POST" action="search_simples.asp"><BR> <BR> <div align="center">Nome<center><p><input type="text" name="nome" size="10"><br>Password <div align="center"><center><p><input type="text" name="ultimo_nome" size="10"><br> <input type="submit"></p> </center></div> </form> <% ' Caso jà tido submitdo vamos fazer a procura else ' ligação DSN-less a BD dim rs, cs sub openrs (q) ' muda o path da BD "d:\WWWROOT\tutor..." cs = "DBQ=info.mdb;DefaultDir=d:\WWWROOT\tutorials\DBsearch\;Driver={Microsoft Access Driver (*.mdb)};" Set rs = Server.CreateObject("ADODB.Recordset") rs.open q, cs, 3, 3, 1 end sub ' aqui fazemos o request das vàriaveis nome=request("nome") ultimo_nome=Request("ultimo_nome") ' aqui vimos se o campo nome foi submetido if nome>"" then sql="select * from dados where nome Like'%"&nome&"%'" end if ' aqui vimos se o campo ultimo foi submetido if ultimo_nome>"" then ' aqui vimos se foi so o campo ultimo_nome ou os dois para construir o SQL if nome>""then sql=sql & " AND ultimo_nome like '%"& ultimo_nome &"%'" else sql="select * from dados where ultimo_nome Like'%"&ultimo_nome&"%'" end if end if ' aqui escrevemos o o sql para ver se ha errors Response.write sql & "<BR>" ' aqui vamos abrir a BD no sitio do nosso criterio openrs sql if not rs.eof then do while not rs.eof Response.write rs("nome") & " " & rs("ultimo_nome") &"<BR>" rs.movenext loop else Response.write "Nao foi encontrado nada, tente de novo" end if rs.close set rs=Nothing end if
' o Sinal de % e o wildcard, isto faz que se encontra tudo basta, por uma letra ' ex. na Bd exsiste "joao" se eu nao tiver % a frente ou atras a procura tem de ser exacta ' mas se tiver o Sinal % atras pores "j" e vai me dar o resultado joao ' Se tiver dos dois lados, ate posso por so uma letra "a" e vai me dar tudo que tiver um "a" %> </body> </html>
T+,
|
|
|
|

|