Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Buscar sin diferenciar mayusculas de minusculas (https://www.clubdelphi.com/foros/showthread.php?t=51130)

DARK_WARRIOR 06-12-2007 11:20:30

Buscar sin diferenciar mayusculas de minusculas
 
hola estoy usando paradox y delphi7 y tengo intento aser una busqueda en la que no diferencie si busco con mayusculas o minusculas y que me busque tambien subcadenas el codigo que tenfo es asi :

Código Delphi [-]
var
consulta,buscar:string;
x:integer;

begin
buscar:=edit2.Text;
//con esta linea busco solo por subcadenas con el % pero alguien sabe que 
//mas puede aser para que no me ocacione problema si busco una nombre 
//que este escrito con MaYuSculAS y MiNUscuLAs  
consulta:='select * from tabla where  Nombre like "%'+buscar+'%"';
query1.SQL.Clear;
query1.SQL.Add(consulta);
query1.Active:=true;
query1.Open;

end;

Espero que alguien conosca alguna solucion y de antemano agradesco cualquier ayuda

enecumene 06-12-2007 14:37:02

Hola, intentalo asi de esta manera a ver si te funciona:

Código Delphi [-]
var
consulta,buscar:string;
x:integer;

begin
buscar:=edit2.Text;
//con esta linea busco solo por subcadenas con el % pero alguien sabe que 
//mas puede aser para que no me ocacione problema si busco una nombre 
//que este escrito con MaYuSculAS y MiNUscuLAs  
consulta:='select * from tabla where  Nombre like ''*'+buscar+'*''';
query1.SQL.Clear;
query1.SQL.Add(consulta);
query1.Active:=true;
query1.Open;

end;

Saludos.

Caro 06-12-2007 14:56:18

Hola DARK_WARRIOR, podrias usar las funciones Lower o Upper en tu consulta.

Si el nombre esta mesclado entre mayusculas y minusculas podrias hacer esto.

Código Delphi [-]
consulta:='select * from tabla where UPPER(Nombre) like "%'+UpperCase(buscar)+'%"';

lo convertimos todo a mayusculas, pero solo en la busqueda ya que en la BD no cambia.

Saluditos

DARK_WARRIOR 07-12-2007 05:55:16

Gracias a ambos por su ayuda
enecumene que es lo que ase el * ?? como se intepreta

la solucion que me dio Caro me sirvio a la perfeccion grasias y perdon por las melestias

Lepe 07-12-2007 15:19:25

El asterisco y el tanto por ciento son caracteres comodines. Dependiendo del motor de bases de datos, se usa uno u otro, creo recordar que ADO usa el asterisco, mientras que Paradox y Firebird usan el tanto por ciento.


Por cierto, me ha gustado mucho eso de tener la respuesta y seguir interesándote por las demás soluciones, dice mucho sobre tus ganas de aprender. Un 10 para tí.

Saludos.

waly2k1 09-12-2007 07:59:51

comodines
 
El '*' funciona con access y creo en alguna otra base pequeña o xBase, pero en 'motores' no y es aconsejable usar el caracter '%'

Salu2


La franja horaria es GMT +2. Ahora son las 15:43:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi