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

Search Palabras Completas

Estas en el tema de Search Palabras Completas en el foro de ASP Clásico en Foros del Web. Estimados amigos: Me gustaría preguntaros si es posible incorporar un codigo a este buscador de tal manera que (1) sólo busque palabras completas, y (2) ...
  #1 (permalink)  
Antiguo 08/05/2003, 04:14
Avatar de emajesus  
Fecha de Ingreso: abril-2003
Mensajes: 278
Antigüedad: 21 años, 1 mes
Puntos: 1
Mensaje Search Palabras Completas

Estimados amigos:

Me gustaría preguntaros si es posible incorporar un codigo a este buscador de tal manera que (1) sólo busque palabras completas, y (2) en caso de no introducir nada aparezca un mensaje de "No ha introducido palabra a buscar".

Gracias,

Emajesus


<!-- Código Enlaces -->

<%

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("enlaces.mdb")

Conexion.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ= \\enlaces.mdb")


Dim Temp

Temp="Select * From Glosario Where UCase(palabra) like '%" & UCase(Request("palabra")) & "%' ORDER by Palabra"
Tabla.Open Temp, Conexion
If Tabla.BOF And Tabla.EOF Then
%>
<dl>
<div align="center">
<div align="left">
<dt><font face="Verdana" size="2" color="#0000FF">No se ha encontrado
nada por <strong><%=Request("palabra")%></strong> en la Base de Datos</font></dt>
</div>
</div>
</dl>

<%
Else
%>
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" width="95%" bordercolor="#111111" style="border-collapse: collapse">
<% While Not Tabla.EOF%>
<tr>
<td width="26%" height="18">
<img border="0" src="ivalidar_r.gif" width="12" height="11"><font face="Verdana" size="2"> <b><%=Tabla.Fields("Palabra")%></b></font>
</td>
</tr>
<tr>
<td width="26%" height="18">
<font face="Verdana" size="2">Definición: <%=Tabla.Fields("Descripcion")%></font>
</td>
</tr>
<tr>
<td width="26%" height="18">
<dl>
<div align="center">
<div align="left">
<dt><font face="Verdana" size="1">Fuente: <%=Tabla.Fields("Url")%></font></dt>
</div>
</div>
</dl>
</td>
</tr>
<%
Tabla.MoveNext
Wend
Tabla.Close
Conexion.Close
End If
%>
</table>
</div>


<!-- Código Enlaces -->
  #2 (permalink)  
Antiguo 08/05/2003, 05:13
 
Fecha de Ingreso: marzo-2003
Mensajes: 90
Antigüedad: 21 años, 2 meses
Puntos: 0
Lo de no introducir ninguna palabra seria tan sencillo como :

if Request("palabra") = "" Then
response.write "No ha incluido ninguna palabra"
response.end
end if

Asi se te pararia en este pto.

Lo de solo buscar palabras completas ... no te entiendo que quieres decir.
  #3 (permalink)  
Antiguo 08/05/2003, 07:43
Avatar de emajesus  
Fecha de Ingreso: abril-2003
Mensajes: 278
Antigüedad: 21 años, 1 mes
Puntos: 1
Cuando digo 'palabras completas' me refiero a lo siguiente:

Actualmente, si el individuo introduce 'a', obtendría como resultado cualquier registro que incluyese 'a', es decir, casi toda la base y eso incrementa notablemente la transferencia de MBs y con ello mi coste.

Mi idea es que si el individuo introduce 'a', obtenga el valor completo 'a' en caso de que esté recogido como tal y no cualquier palabra que incluya la letra 'a'.

Gracias por tu colaboración,

Emajesus

Si incluyo el código que me adjuntas para indicar que 'no se ha incluido ninguna palabra' antes de 'If Tabla.BOF ...'

me detiene la ejecución del resto de la página.



Dim Temp

Temp="Select * From Glosario Where UCase(palabra) like '%" & UCase(Request("palabra")) & "%' ORDER by Palabra"
Tabla.Open Temp, Conexion

if Request("palabra") = "" Then
response.write "No ha incluido ninguna palabra"
response.end
end if

If Tabla.BOF And Tabla.EOF Then (...)

Un saludo,

Emajesus
  #4 (permalink)  
Antiguo 08/05/2003, 10:51
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
para lo de la palabra completa... veamos las posibilidades de que una palabra sea completa dentro de un string:

1- Puede tener un espacio adelante y otro al final (" salió ")
2- Puede tener un signo de puntuación sólo al final ( " salió.")
3- Puede ser la primer palabra del string, con lo que no tiene un espacio al comienzo ("Salió ") y, además, puede tener un signo de puntuación al final ("Salió, ")
4-... otra no se me ocurre.


Entonces, creo que esto sirve:

Criterio = " " & Request("Palabra") & " "

SQL = "SELECT Tabla.Id, Tabla.TEXTO, ' ' & Replace(Tabla.TEXTO,',',' ','1') & ' ' AS TextoNuevo FROM Tabla WHERE (((' ' & Replace(Tabla.TEXTO,',',' ','1') & ' ') Like '%" & Criterio & "%'))"

Claro que sólo le eliminé las comas.. Fijate de hacer lo mismo pero con los restantes signos de puntuación posible.
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:12.