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

Error con el Buscador simple mejorado de Desarrollo Web

Estas en el tema de Error con el Buscador simple mejorado de Desarrollo Web en el foro de ASP Clásico en Foros del Web. Hola a todos: He probado el buscador simple mejorado de desarrollo web, pero me da el siguiente error: ADODB.Recordset error '800a0bb9' Argumentos incorrectos, fuera del ...
  #1 (permalink)  
Antiguo 01/11/2003, 13:21
 
Fecha de Ingreso: junio-2001
Mensajes: 58
Antigüedad: 23 años, 10 meses
Puntos: 0
Error con el Buscador simple mejorado de Desarrollo Web

Hola a todos:

He probado el buscador simple mejorado de desarrollo web, pero me da el siguiente error:

ADODB.Recordset error '800a0bb9'

Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros.

/buscador/buscar.asp, line 74

El codigo de la pagina es el siguiente

+++++++++++++++++++++++++++++

<%
function Sacar(cadena,campos)
dim i
dim SacarAux
while InStr(cadena," ")
Cadena=Replace(Cadena," "," ")
wend
if len(cadena)>0 then
if InStr(cadena," ")>0 then
Sacar= Sacar(left(cadena,InStr(cadena," ")-1),campos) & " OR " & Sacar(right(cadena,len(cadena)-InStr(cadena," ")),campos)
elseif InStr(cadena,"+")>0 then
Sacar=Sacar(left(cadena,InStr(cadena,"+")-1),campos) & " AND "& Sacar(right(cadena,len(cadena)-InStr(cadena,"+")),campos)
elseif InStr(cadena,"-")>0 then
Sacar=Sacar(left(cadena,InStr(cadena,"-")-1),campos) & " AND NOT " & Sacar(right(cadena,len(cadena)-InStr(cadena,"-")),campos)
else
'fijamos la sentencia
SacarAux=""
i=1
SacarAux= "( " & campos(i) & " Like '%" & cadena & "%'"
i=i+1
while len(campos(i))>0
SacarAux= SacarAux & " OR " & campos(i) & " Like '%" & cadena & "%'"
i=i+1
wend
SacarAux=SacarAux & " )"
Sacar=SacarAux
end if
else
sacar=""
end if
end function

function GeneraSql(cadena,tabla,campos)
if len(cadena)>0 then
generaSql="Select * from " & tabla & " Where " & Sacar(cadena,campos)
else
Response.Write "No hay criterios"
end if
end function
%>

<html>

<head>
<title>Buscar datos</title>
</head>

<body bgcolor="#FFFFCC">

<p><font face="Tahoma" size="2">Resultados obtenidos con <strong><%=Request("Palabra") %></strong></font></p>

<%

Dim Conexion,Tabla
Set Conexion=Server.CreateObject("adodb.connection")
Set Tabla=Server.CreateObject("adodb.recordset")
Conexion.Open "Driver={Microsoft Access Driver (*.mdb)}; " & "Dbq=" & Server.MapPath("bd_buscar.mdb")

Dim Temp

'Temp="Select * From Tabla1 Where UCase(pal) like '%" & UCase(Request("palabra")) & "%'"

dim campos(3)'el tamano del array debe superar en uno al numero de campos
campos(1)="calle"
campos(2)="empresa"

'para mostrar cual seria el resultado...
cadena=Request.form("palabra")
tabla_bbdd="Tabla1"
Temp=GeneraSql(cadena,tabla_bbdd,campos)

'response.write Temp

Tabla.Open Temp, Conexion
If Tabla.BOF And Tabla.EOF Then
%>

<p><font face="Tahoma" size="2">No se ha encontrado nada con <strong><%=Request("palabra")%></strong> en la Base de Datos</font></p>


<%
Else
%>
<div align="center"><center>
<table border="1" cellpadding="0" cellspacing="0" width="100%" height="74" bordercolor="#C0C0C0">
<tr>
<td width="28%" height="19">
<p align="center"><strong><font face="Tahoma" size="2">Calle</font></strong>
</td>
<td width="28%" height="19">
<p align="center"><strong><font face="Tahoma" size="2">Coordenada</font></strong></p>
</td>
<td width="52%" height="19">
<p align="center"><strong><font face="Tahoma" size="2">Empresa</font></strong>
</td>
</tr>
<% While Not Tabla.EOF%>
<tr>
<td width="28%" bgcolor="#FFCC00" height="51">
<p align="center"><font face="Tahoma" size="2"><%=Tabla.Fields("calle")%></font></td>
<td width="28%" bgcolor="#FFCC00" height="51">
<p align="center"><font face="Tahoma" size="2"><%=Tabla.Fields("coordenada")%></font></td>
<td width="52%" bgcolor="#FFCC00" height="51">
<p align="center"><font face="Tahoma" size="2"><%=Tabla.Fields("empresa")%></font></td>

</tr>
<%
Tabla.MoveNext
Wend
Tabla.Close
Conexion.Close
End If
%>
</table>
</center></div>
<p align="center"><font face="Tahoma" size="2">Busquedas</font></p>
<p align="center"><font face="Tahoma" size="2">2002</font></p>
<p align="center"> </p>
</body>
</html>

+++++++++++++++++++++++++++++++++++++

Espero que me puedan echar una mano. La pagina funciona bien cuando pones algo en el buscador, pero cuando le das a buscar sin ningun valor da el error.

Gracias de antemano y un saludo.
  #2 (permalink)  
Antiguo 03/11/2003, 18:11
Avatar de Cbas  
Fecha de Ingreso: enero-2002
Ubicación: capital federal
Mensajes: 437
Antigüedad: 23 años, 3 meses
Puntos: 2
La línea que te tira error cvreo que es

Tabla.Open Temp, Conexion

El tema es que vos armás el Query en GeneraSql, pero si no tiene nada le decis que haga un response.write de que no hay registros... me explico?

o sea.. lo que trata de hacer es:

Tabla.Open "", Conexion

entonces ahí tenés el problema...

lo que haría yo sería

If len(cadena)>0 then
Tabla.Open Temp, Conexion
else
Response.Write "Ingrese algún Criterio de búsqueda"
end if


SALUDOS
__________________
La Perfección es enemigo de lo bueno.
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 00:48.