Ir para conteúdo

POWERED BY:

Arquivado

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

alohmann

[Resolvido] Busca em banco de dados

Recommended Posts

Galera, não estou conseguindo fazer funcionar a busca no meu site, está apresentando erro:

ADODB.Command error '800a0d5d'

 

Application uses a value of the wrong type for the current operation.

 

/busca.asp, line 19

 

Segue a linha 19 do código (em italico), e mais embaixo outros códigos. Se alguém puder me ajudar, agradeço muito! A idéia é buscar pelo termo específico dentro dos campos "titulo", "autor" ou "sinopse".

Set recBuscaLivros_cmd = Server.CreateObject ("ADODB.Command")
recBuscaLivros_cmd.ActiveConnection = MM_conAguilar_STRING
recBuscaLivros_cmd.CommandText = "SELECT * FROM livro WHERE sinopse LIKE ? OR titulo LIKE '%MMColParam%' ORDER BY titulo ASC" 
recBuscaLivros_cmd.Prepared = true
[i]recBuscaLivros_cmd.Parameters.Append recBuscaLivros_cmd.CreateParameter("param1", 5, 1, -1, "%" + recBuscaLivros__MMColParam + "%") '[/i] adDouble

 

Código do box de busca

<input name="txtBusca0" type="text" id="txtBusca3" size="15" maxlength="50" />
                          <input name="ok0" type="submit" id="ok0" value="ok" />

 

 

Código do Recordset

<%
Dim recBuscaLivros__MMColParam
recBuscaLivros__MMColParam = "1"
If (Request.Form("txtBusca")  <> "") Then 
  recBuscaLivros__MMColParam = Request.Form("txtBusca") 
End If
%>
<%
Dim recBuscaLivros
Dim recBuscaLivros_cmd
Dim recBuscaLivros_numRows

Set recBuscaLivros_cmd = Server.CreateObject ("ADODB.Command")
recBuscaLivros_cmd.ActiveConnection = MM_conAguilar_STRING
recBuscaLivros_cmd.CommandText = "SELECT * FROM livro WHERE sinopse LIKE ? OR titulo LIKE '%MMColParam%' ORDER BY titulo ASC" 
recBuscaLivros_cmd.Prepared = true
recBuscaLivros_cmd.Parameters.Append recBuscaLivros_cmd.CreateParameter("param1", 5, 1, -1, "%" + recBuscaLivros__MMColParam + "%") ' adDouble

Set recBuscaLivros = recBuscaLivros_cmd.Execute
recBuscaLivros_numRows = 0
%>

 

Código para exibir o nome do livro encontrado, que deveria ser clicável e ir para o livro escolhido.

<% 
While ((Repeat1__numRows <> 0) AND (NOT recBuscaLivros.EOF)) 
%>
                <tr>
                  <td width="10%" valign="top"><span class="data"><span class="textos"><a href="livro_detalhes.asp?<%= Server.HTMLEncode(MM_keepNone) & MM_joinChar(MM_keepNone) & "idCodLivro=" & recBuscaLivros.Fields.Item("codLivro").Value %>"><font color="#000000"><%=(recBuscaLivros.Fields.Item("titulo").Value)%></font></a></span></td>
          <td colspan="2" class="textos"></td>
            </tr>
                <tr>
                  <td colspan="2" valign="top"> </td>
                </tr>
                <% 
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  recBuscaLivros.MoveNext()
Wend
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, consegui resolver o problema, a busca está funcionando. Agora só tem um pequeno problema. Ela está buscando nos campos "titulo" e "sinopse", mas não está buscando nos campos de "autor". Os 3 são campos de texto normal, alguém sabe o que pode ser isso?

 

Segue o código do novo RecordSet:

 

<%
Dim recBuscaLivros
Dim recBuscaLivros_cmd
Dim recBuscaLivros_numRows

Set recBuscaLivros_cmd = Server.CreateObject ("ADODB.Command")
recBuscaLivros_cmd.ActiveConnection = MM_conAguilar_STRING
recBuscaLivros_cmd.CommandText = "SELECT * FROM livro WHERE sinopse LIKE ? OR autor LIKE '%MMColParam%' OR autor2 LIKE '%MMColParam%' OR autor3 LIKE '%MMColParam%' OR autor4 LIKE '%MMColParam%' OR autor5 LIKE '%MMColParam%' OR titulo LIKE '%MMColParam%' ORDER BY titulo ASC" 
recBuscaLivros_cmd.Prepared = true
recBuscaLivros_cmd.Parameters.Append recBuscaLivros_cmd.CreateParameter("param1", 200, 1, 255, "%" + recBuscaLivros__MMColParam + "%") ' adVarChar

Set recBuscaLivros = recBuscaLivros_cmd.Execute
recBuscaLivros_numRows = 0
%>

A busca está encontrando o termo pesquisado quando ele se encontra nos campos "titulo" e "sinopse", mas em autor, nem pensar. Se puderem me ajudar, agradeço!

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.