Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/09/2003, 12:44
Avatar de saymon
saymon
 
Fecha de Ingreso: septiembre-2003
Ubicación: Panama
Mensajes: 318
Antigüedad: 21 años, 8 meses
Puntos: 0
Mira este código es exactamente sencillo para un buscador, solamente cambia los parametros por los tuyos.

saludos


<%
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

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

'para mostrar cual seria el resultado...
cadena="hola cariola+cocacola-colacao"
tabla="cualquiera"
resultado=GeneraSql(cadena,tabla,campos)

Response.Write resultado
%>


_______________________________________

Cuando el temor es un problema confía en tí