Foros del Web » Programando para Internet » ASP Clásico »

Problema con buscador

Estas en el tema de Problema con buscador en el foro de ASP Clásico en Foros del Web. http://www.asptutor.com/asp/vart.asp?id=138 En ese enlace explica el proceso de un buscador , yo lo hecho tal cual lo explica y me sale este error: Tipo de ...
  #1 (permalink)  
Antiguo 17/06/2003, 18:37
 
Fecha de Ingreso: mayo-2003
Mensajes: 101
Antigüedad: 22 años
Puntos: 0
Problema con buscador

http://www.asptutor.com/asp/vart.asp?id=138


En ese enlace explica el proceso de un buscador , yo lo hecho tal cual lo explica y me sale este error:

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Controlador ODBC Microsoft Access] Pocos parámetros. Se esperaba 1.

En esta línea más específicamente, RS.Open strSQL, oConn,3,1


Alguien me podría dar una solución ?

Muchas gracias
  #2 (permalink)  
Antiguo 17/06/2003, 18:53
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 3 meses
Puntos: 1
Tu consulta SQL esta incorrecta, ponla...
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #3 (permalink)  
Antiguo 17/06/2003, 19:03
 
Fecha de Ingreso: mayo-2003
Mensajes: 101
Antigüedad: 22 años
Puntos: 0
A esto te refieres ?



strsql = "SELECT * FROM listado where UCase(titulo) like '%" & UCase(Request("titulo")) & "%' AND UCase(artista) like '%" & UCase(Request("artista")) & "%' AND UCase(anio) like '%" & UCase(Request("anio")) & "%' order by "& orden & " "&alf

Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("listacd.mdb")

' creo el RecordSet y defino la cantidad de registros a mostrar
Set RS = Server.CreateObject("ADODB.Recordset")
RS.PageSize = mostrar
RS.CacheSize = mostrar

' Abro la tabla...
RS.Open strSQL, oConn,3,1
'cuento las páginas que se formaron con la variable mostrar
cant_paginas = RS.PageCount
  #4 (permalink)  
Antiguo 18/06/2003, 03:22
Avatar de Subotai  
Fecha de Ingreso: mayo-2003
Ubicación: Irúnforge
Mensajes: 198
Antigüedad: 22 años
Puntos: 1
Hola Comax03
Creo que el error podria ser de sintaxis, aunque no dudo que tendras un monton de consultas con la misma sintaxis y funcionaran, si no lo habrias puesto asin,jejeje
pero podria ser la concatenacion, pureba a cambiar
'%"&
por
"'&

quedaria asi
strsql = "SELECT * FROM listado where UCase(titulo) like "'&Case(Request("titulo"))&'" AND UCase(artista) like "'&UCase(Request("artista"))&'" AND UCase(anio) like "'&UCase(Request("anio"))&'" order by '"&orden&"' '"&alf"' "

he visto que pones muchos espacios de sobra que tambien podiran dr problemas...
quizas me equivoque pero espero haberte sido de ayuda..;-P
agur y suerte
  #5 (permalink)  
Antiguo 18/06/2003, 07:07
 
Fecha de Ingreso: mayo-2003
Mensajes: 101
Antigüedad: 22 años
Puntos: 0
Ahora he puesto lo q me has dicho en el mensaje, te copio el texto entero pq sino... y el error q me da es este :

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta operador) en la expresión de consulta 'UCase(titulo) like'.


A ver si me pues decir q porras pasa, gracias


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<%
Dim mostrar 'cantidad de registros a mostrar por página
Dim cant_paginas 'cantidad de páginas que recibimos
Dim pagina_actual 'La página que mostramos
Dim registro_mostrado 'Contador utilizado para mostrar las páginas
Dim I 'Variable Loop
titulo = request.querystring("titulo")
artista = request.querystring("artista")
anio = request.querystring("anio")
orden = request.querystring("orden")
alf = request.querystring("alf")
cantidad = request.querystring("cantidad")
if cantidad="10" then
mostrar = 10
elseif cantidad="20" then
mostrar = 20
elseif cantidad="30" then
mostrar = 30
end if
if orden = "" then
response.redirect "buscador.asp"
end if

' IF para saber que página mostrar
If Request.QueryString("page") = "" Then
pagina_actual = 1
Else
pagina_actual = CInt(Request.QueryString("page"))
End If

strsql = "SELECT * FROM listado where UCase(titulo) like "'&Case(Request("titulo"))&'" AND UCase(artista) like "'&UCase(Request("artista"))&'" AND UCase(anio) like "'&UCase(Request("anio"))&'" order by '"&orden&"' '"&alf"' "
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("listacd.mdb")

' creo el RecordSet y defino la cantidad de registros a mostrar
Set RS = Server.CreateObject("ADODB.Recordset")
RS.PageSize = mostrar
RS.CacheSize = mostrar

' Abro la tabla...
RS.Open strSQL, oConn,3,1
'cuento las páginas que se formaron con la variable mostrar
cant_paginas = RS.PageCount

' Si el pedido de página cae afuera del rango,
' lo modifico para que caiga adentro
If pagina_actual > cant_paginas Then pagina_actual = cant_paginas
If pagina_actual < 1 Then pagina_actual = 1
%>
<body style="background-color: #FFFFF4">
<%
' Si la cantidad de páginas da 0 es que no hay registros... por eso este IF
If cant_paginas = 0 Then%>

<p><font face="Arial">Se encontraron <font color="#FF0000"> <b>0</b> resultados</font></font></p>

<ul>
<li><font face="Arial"><a href="buscador.asp">Buscar nuevamente</a></font></li>
<li><font face="Arial">
<a href="resultados.asp?orden=Artista&titulo=<%=titul o%>&cantidad=10">Repetir la búsqueda sin restricciones</a></font></li>
</ul>
<%
'sino, si es que encuentra registros
Else
' Nos movemos a la página elegida
RS.AbsolutePage = pagina_actual
' muestra el dato de la página en la que estamos...
%>
<div align="center">
<center>
<table border="1" cellspacing="1" style="border-width:0; border-collapse: collapse" bordercolor="#111111" width="80%" id="AutoNumber1">
<tr>
<td width="29%" bgcolor="#CCCCFF" style="border-left:medium none #111111; background-color: #DDDDFF; border-right-style:none; border-right-width:medium; border-top-style:none; border-top-width:medium; border-bottom-style:none; border-bottom-width:medium" align="center">
<p style="text-align: left"><b><font color="#003366" face="Arial" size="2">
Artista </font></b></td>
<td width="36%" bgcolor="#CCCCFF" style="border-style: none; border-width: medium; background-color: #DDDDFF; text-align:center">
<font color="#003366" face="Arial" size="2"><b>Título</b></font></td>
<td width="13%" bgcolor="#CCCCFF" style="border-style: none; border-width: medium; background-color: #DDDDFF" align="center">
<p align="center"><font color="#003366" face="Arial" size="2"><b>Tracks</b></font></td>
<td width="10%" bgcolor="#CCCCFF" style="border-style: none; border-width: medium; background-color: #DDDDFF" align="center">
<p align="center"><font color="#003366" face="Arial" size="2"><b>Año</b></font></td>
<td width="18%" bgcolor="#CCCCFF" style="border-right:medium none #111111; background-color: #DDDDFF; border-left-style:none; border-left-width:medium; border-top-style:none; border-top-width:medium; border-bottom-style:none; border-bottom-width:medium" align="center">
<p align="center" style="text-align: center">
<font color="#003366" face="Arial" size="2"><b>Precio</b></font></td>
</tr>
<%

' Hacemos el bucle mostrando los datos del registro
registro_mostrado = 0
Do While registro_mostrado < mostrar And Not RS.EOF
if colorfila = 0 then
color= "#FFFFFF"
colorfila=1
else
color="#F3F3F3"
colorfila=0
end if
%>

<tr>
<td width="29%" style="border-style:none; border-width:medium; background-color: <%= color %>; "><font face="Arial" size="2"><b><%=RS("artista")%></b> </td>
<td width="36%" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:left; "><font face="Arial" size="2"><%=RS("titulo")%></a></font> </td>
<td width="13%" align="center" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:center; "><font face="Arial" size="2"><%=RS("tracks")%> </td>
<td width="10%" align="center" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:center; "><font face="Arial" size="2"><%=RS("anio")%> </td>
<td width="18%" align="center" style="border-style:none; border-width:medium; background-color: <%= color %>; text-align:center; ">
<p><font face="Arial" size="2" color="#FF0000">$<%=RS("precio")%> </td>
</tr>
<%
' Sumamos 1 a los mostrados
registro_mostrado = registro_mostrado + 1
' Nos movemos al próximo registro...
RS.MoveNext
Loop

End If
%>
</table>

</center>
</div>

<%
' Cerramos y limpiamos...
RS.Close
Set RS = Nothing
oConn.Close
Set oConn = Nothing
%>
<div align="center"><br>
<font size="2" face="Arial">
<%
' Ahora mostramos los enlaces a las otras páginas con el resto de los registros...
If pagina_actual > 1 Then
%> </font><font size="2"> <a href="resultados.asp?eje=30&page=<%= pagina_actual - 1 %>&titulo=<%=titulo%>&artista=<%=artista%>&orden=< %=orden%>&anio=<%=anio%>&cantidad=<%=cantidad%>">
<font face="Arial">[</font><b><font face="Arial"><<</font></b><font face="Arial"> anterior ]</font></a><font face="Arial"> <%
End If

' mostramos la paginacion por numeros de página
For I = 1 To cant_paginas
If I = pagina_actual Then
%> <font color="#FF3300">
<b><%= I %></b></font>
<%
Else
%>
<a href="resultados.asp?eje=30&page=<%= I %>&titulo=<%=titulo%>&artista=<%=artista%>&orden=< %=orden%>&anio=<%=anio%>&cantidad=<%=cantidad%>">< %= I %></a>
<%
End If
Next 'I

If pagina_actual < cant_paginas Then
%> </font> <a href="resultados.asp?eje=30&page=<%= pagina_actual + 1 %>&titulo=<%=titulo%>&artista=<%=artista%>&orden=< %=orden%>&anio=<%=anio%>&cantidad=<%=cantidad%>">
<font face="Arial">[ </font>
</font>

<font size="2" face="Arial"> siguiente
</font>

<font size="2">
<b><font face="Arial">>></font></b></font><font face="Arial" size="2">]</font></a><font size="2">
<br>
</font>

<%
End If
'Fin
%>
</div>

<br><center><font face="Arial" size="1"><a href="buscador.asp">Buscar de nuevo</font><font size="2"><a/>
</a></font>

</BODY>
</HTML>
</body>
</html>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:02.