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

Duda sobre el LIKE de SQL

Estas en el tema de Duda sobre el LIKE de SQL en el foro de ASP Clásico en Foros del Web. Hola a todos: Estoy con un listado de productos y quiero crear un textbox que cuando tu escribas una letra(onchange) mande la variable y filtre ...
  #1 (permalink)  
Antiguo 22/09/2004, 05:13
 
Fecha de Ingreso: junio-2003
Mensajes: 318
Antigüedad: 21 años
Puntos: 0
Duda sobre el LIKE de SQL

Hola a todos:
Estoy con un listado de productos y quiero crear un textbox que cuando tu escribas una letra(onchange) mande la variable y filtre la búsqueda en ese listado por las letras que el usuario vaya metiendo.
La idea la tengo clara, pero he intentado crear en el Dreamweaver un recordset utilizando la sentencia LIKE y me da error todas las veces. Estoy atacando una base de datos SQLSERVER.
La consulta en cuestión es:

SELECT *
FROM dbo.PROYECTOS, dbo.CLIENTES, dbo.COMERCIALES
WHERE CodCliente = IdCliente AND CodComercial = IdComercial AND DescripciónProyecto LIKE vartexto
ORDER BY CodCliente, CodComercial

y le pongo a vartexto como variable por defecto "*" para que de salida hasta que esa variable esté llena me aparezcan todas.
¿Qué es lo que hago mal?
Gracias.
  #2 (permalink)  
Antiguo 22/09/2004, 05:16
 
Fecha de Ingreso: junio-2003
Mensajes: 318
Antigüedad: 21 años
Puntos: 0
Ya tengo la solución:
Me faltaban unas comillas simples en la variable tras el LIKE y además sustituir el asterisco(*) por el porcentaje(%) de asp
Gracias a todos.
  #3 (permalink)  
Antiguo 22/09/2004, 06:28
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 7 meses
Puntos: 4
Una pregunta reycoy.

Cada vez que el usuario escribe una letra en el campo de texto has de enviar el formulario, ¿no es así? Si no, ¿de que otra manera puedes hacer la consulta SQL? Esto sería un poco tedioso si la conexión no es muy rápida, creo yo, y puede que el usuario se aburra de esperar cada vez que escriba una sola letra aunque se haya equivocado al hacerlo.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #4 (permalink)  
Antiguo 22/09/2004, 07:33
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
OnChange no se ejecuta cada vez que se preciona una letra, sino hasta que se pierde el foco del control despues de haber cambiado el texto
  #5 (permalink)  
Antiguo 22/09/2004, 08:16
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 7 meses
Puntos: 4
Pues es verdad Myakire, se me había pasado. Siendo así, entonces no es necesario ese filtro letra por letra, ya que hasta que el usuario no hay terminado de escribir y salga del campo, nada de nada.

Entonces es una simple búsqueda en la que se envía el formulario y se recoge en una variable para comprobar si está contnida en un campo determinado.

¿Me equivoco?
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #6 (permalink)  
Antiguo 22/09/2004, 08:49
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Pues así como lo menciona, parece que en realidad es como tu dices. Para hacer lo que quiere es mas con javascript (por eso del filtro según la captura letra por letra) que con ASP. Se podría, claro, pero como bien mencionas, sería bastante engorroso.

Gusto en saludarte como siempre Bravenap
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 23:54.