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

Motor de busqueda en BD

Estas en el tema de Motor de busqueda en BD en el foro de ASP Clásico en Foros del Web. Saludos estoy armando un motor de buesqueda Contra SQL pero cuando hago la consulta no me detalla sino que me envia todos los registros lo ...
  #1 (permalink)  
Antiguo 02/04/2003, 13:41
Avatar de Mulato  
Fecha de Ingreso: diciembre-2001
Ubicación: Caracas
Mensajes: 158
Antigüedad: 23 años, 4 meses
Puntos: 0
Motor de busqueda en BD

Saludos estoy armando un motor de buesqueda Contra SQL pero cuando hago la consulta no me detalla sino que me envia todos los registros lo que quiero es que me envie los registros que coincidan con la solicitud desde la forma:

Codigo:

<%
'Se declara una variable para almacenar el parametro del la forma

ctexto = request.form("cadena")

'Si no escribió nada, se envía un error
IF ctexto = "" THEN
error = "Error: Debe completar todos los datos antes de presionar el botón 'Buscar'."
Response.Write "<CENTER>"
Response.Write "<BR> <BR>"
Response.Write "<font face='Verdana, Arial, Helvetica, sans-serif' size='2'>"
Response.Write error
Response.Write "<BR> <BR>"
Response.Write "Presione <a href='javascript:history.go(-1)'>aqui</a> para volver a la página anterior"
Response.Write "<BR> <BR>"
Response.Write "<a href='javascript:history.go(-1)'>--- Regresar ---</a>"
Response.Write "</font>"
Response.Write "</CENTER>"
Response.End
END IF

'Abre la conexion con la base de datos

Set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open "Provider=SQLOLEDB; SERVER=servidor; UID=usuario;PWD=clave;DATABASE=base; INITIAL CATALOG=base"

'Separar la cadena en dos string (si aplica)
n=len(ctexto)

FOR variable=1 TO n
ctexto1=mid(ctexto,variable, 1)
IF ctexto1= " " THEN
ctexto2=mid(ctexto,1, variable)
IF variable<>n THEN
ctexto3=trim(mid(ctexto,variable+1, 30))
ELSE
ctexto3=ctexto2
END IF
variable=n
ELSE
ctexto2=ctexto
ctexto3=" "
END IF
NEXT


'Ejecuta un sentencia SQL de consulta
'sql = "SELECT * FROM personal_ubicacion WHERE (APELLIDOS LIKE '%"&ctexto2&"%' AND NOMBRES LIKE '%"&ctexto3&"%') OR (APELLIDOS LIKE '%"&ctexto3&"%' AND NOMBRES LIKE '%"&ctexto2&"%') OR PABX LIKE '%"&ctexto2&"%'OR EMAIL_INTERNO LIKE '%"&ctexto2&"%' ORDER BY APELLIDOS"
'sql = "SELECT * FROM personal_ubicacion WHERE (APELLIDOS LIKE '%"&ctexto2&"%' AND NOMBRES LIKE '%"&ctexto3&"%') OR (APELLIDOS LIKE '%"&ctexto3&"%' AND NOMBRES LIKE '%"&ctexto2&"%') OR PABX LIKE '%"&ctexto2&"%' OR EMAIL_INTERNO LIKE '%"&ctexto2&"%' ORDER BY APELLIDOS"
'sql2 = "SELECT count(*) total FROM personal_ubicacion WHERE (APELLIDOS LIKE '%"&ctexto2&"%' AND NOMBRES LIKE '%"&ctexto3&"%') OR (APELLIDOS LIKE '%"&ctexto3&"%' AND NOMBRES LIKE '%"&ctexto2&"%') OR PABX LIKE '%"&ctexto2&"%' OR EMAIL_INTERNO LIKE '%"&ctexto2&"%'"

sql = "SELECT is_cedula, chr_siglas_est, is_apellido, is_nombre, chr_tel_oficina, chr_correo FROM personal, estruc_organ WHERE personal.in_codigo = estruc_organ.in_codigo AND (is_nombre LIKE '%"&ctexto2&"%' OR is_apellido LIKE '%"&ctexto3&"%') ORDER BY is_apellido"

sql2 = "SELECT COUNT(*) total FROM personal WHERE is_nombre LIKE '%"&ctexto2&"%' OR is_apellido LIKE '%"&ctexto3&"%'"

Set result = cnn.Execute(sql)
Set result2 = cnn.Execute(sql2)


En realidad no se en que me esta fallando..

Agradeciendo su colaboración
  #2 (permalink)  
Antiguo 26/04/2003, 08:24
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 3 meses
Puntos: 1
http://aspfacil.com/articulos/verarticulo.asp?id=22
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
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 20:25.