Ver Mensaje Individual
  #21  
Antiguo 09-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Pues creo que se ha colado un error por ahí. Imaginemos que el campo en la base de datos se llama NOMBRE (escrito en mayúsculas).

Lowercase es una función de delphi, por tanto, la sql final sería:
Código SQL [-]
Select * from agenda where nombre  like 'pepe%'
Lo que ha hecho lowercase es pasar a minúsculas el nombre del campo, pero eso es lo de menos, SQL no es sensible a mayúsculas y minúsculas, así que... ni siquiera tiene sentido hacer el "Lowercase(campo)".

Si un cliente se llama PEPE (en mayúsculas) no será capaz de encontrarlo.

Lo que debemos usar es "Lower", función propia de SQL
La consulta debe ser:
Código Delphi [-]
query1.sql.text:= 'Select * from agenda where Lower(' + campo+ ')  like ' +QuotedStr(TXTbusca.text + '%');

El SQL de un ejemplo quedará:
Código SQL [-]
Select * from agenda where lower(nombre)  like 'pepe%'

Para que ahora si, por cada registro que encuentra, primero pasa a minúsculas el nombre del cliente y después lo compara con "like pepe% " dando las coincidencias que buscamos.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 09-02-2007 a las 16:28:33.
Responder Con Cita