Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dmerege

Sistema avançado de busca em banco de dados

Recommended Posts

Ae pessoal.

Preciso de uma ajuda.

 

Desenvolvi um sistema de knowledge base.

E no campod e busca, com dados armazenados em access, eu percebi que quando digito uma frase extensa para ser procurada no BD, o sistema retorna como se não tivesse encontrado. Só parâmetros simples são encontrados facilmente.

 

Abaixo segue o código da página:

 

CODE
<%

 

 

'Requerindo dados do busca.asp

 

parametro = request.querystring("parametro")

tipo_busca = request.QueryString("type_database")

 

 

'Conexão com database

 

set database = server.createobject("ADODB.Connection")

database.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("DB/armaz_central_errors.mdb")

 

'Verifica tipo de busca e cria objeto RecordSet

if tipo_busca = "description" then

Set RecordSet = server.createobject("ADODB.RecordSet")

RecordSet.Open "select * from kb_col where msg_erro like '%"& parametro &"%'",database,1,2

 

else if tipo_busca = "code_error" then

Set RecordSet = server.createobject("ADODB.RecordSet")

RecordSet.Open "select * from kb_col where cod_erro = "& parametro,database,1,2

end if

end if

 

 

Dim cod_erro , msg_erro , sintomas , causa , resolucao , id_artigo , ult_revisao , revisado_por

 

if not RecordSet.EOF then

 

if RecordSet.RecordCount = 1 then

id_artigo = RecordSet("id_artigo")

ult_revisao = RecordSet("ult_revisao")

revisado_por= RecordSet("revisado_por")

cod_erro = RecordSet("cod_erro")

msg_erro = RecordSet("msg_erro")

sintomas = RecordSet("sintomas")

causa = RecordSet("causa")

resolucao = RecordSet("resolucao")

status = RecordSet("status")

titulo = RecordSet("titulo")

 

RecordSet("nr_acesso") = RecordSet("nr_acesso") + 1

RecordSet.Update

 

 

response.redirect("search.asp?ac=t&ce="&cod_erro&"&msg="&msg_erro&"&sin="&sintomas&"&causa="&causa&"&rs="&resolucao&"&st="&status&"&id="&id_artigo&"&rv= "&revisado_por&"&ult="&ult_revisao&"&tt="&titulo)

 

 

%>

<%else %>

<html>

<head>

<title>Resultado de Busca - BCCoL</title>

<STYLE type=text/css>

 

A:link { text-decoration: none}

A:visited { text-decoration: none}

 

 

</STYLE>

</head>

 

<body bgcolor='#CCCCCC' text="#333333" link="#0000cc" vlink="#0000cc" alink="#0000cc" >

<div align="center"> <font size="2" face="Verdana"> <br>

</font><font face="Verdana" size="1"></font></div>

<div align="center"> <font size="2" face="Verdana">

 

</font></div>

<div align="center"> <font size="2" face="Verdana" color="#000000"><b><font size="3">

BCCoL - Base de Conhecimento

<br />

CoL Developers<br>

<br></b>

<font size="2" face="Verdana" color="red"> <%=Session("Nome_User") %></font><br /><br />

<br>

</font></font></div>

 

 

<hr />

 

<font size="2" face="Verdana" color="black"><%mensagem = "O banco de dados encontrou " & RecordSet.RecordCount & " registro"%>

<% =mensagem %><%if RecordSet.RecordCount > 1 then %>s<%End if %>. Clique no resultado que procura.</font><br /><br />

 

<table BORDER="0" width="100%" cellpadding="3" align="center">

<%While Not RecordSet.EOF %>

<%

 

id_artigo = RecordSet("id_artigo")

ult_revisao = RecordSet("ult_revisao")

revisado_por= RecordSet("revisado_por")

cod_erro = RecordSet("cod_erro")

msg_erro = RecordSet("msg_erro")

sintomas = RecordSet("sintomas")

causa = RecordSet("causa")

resolucao = RecordSet("resolucao")

status = RecordSet("status")

titulo = RecordSet("titulo") %>

 

 

<td>

 

 

<tr ><a href = "search.asp?ac=t&ce=<%=cod_erro%>&msg=<%=msg_erro%>&sin=<%=sintomas %>&causa=<%=causa%>&rs=<%=resolucao%>&st=<%=status%>&id=<%=id_artigo%>&rv= <%=revisado_por%>&ult=<%=ult_revisao%>&tt=<%=titulo %>">

<font face="Verdana" size="2" color="blue" ><b>- <%=RecordSet("titulo")%></b></font>

</a>

<br />

 

 

</tr>

 

<tr align="left"><a href = "search.asp?ac=t&ce=<%=cod_erro%>&msg=<%=msg_erro%>&sin=<%=sintomas %>&causa=<%=causa%>&rs=<%=resolucao%>&st=<%=status%>&id=<%=id_artigo%>&rv= <%=revisado_por%>&ult=<%=ult_revisao%>&tt=<%=titulo %>"><font face="Verdana" size="2" color="black"><%=RecordSet("msg_erro")%> </font></a>

 

<br />

 

</tr>

 

 

 

 

</td>

<p>

 

 

<%RecordSet.MoveNext

 

Wend%>

 

 

</table>

</body>

</html>

 

 

<%

end if%>

 

<%

else

response.redirect("search.asp?ac=f&ce="&null&"&msg="&null&"&sin="&null&"&causa="&null&"&rs="&null&"&st="&null&"&id="&null&"&rv="&null&"&ult="&null&"&tt="&null)

end if %>

 

Aguardo um retorno.. Se vocês tiverem um método mais eficiente de busca, me falem..

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Imprima aqui a SQL da busca.

 

Antes de abrir o recordset, coloque

 

response.write( sua_sql )
response.end

[]´s ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.