Ver la Versión Completa : Buscar sin diferenciar mayusculas de minusculas
DARK_WARRIOR
06-12-2007, 10:20:30
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 :
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, 13:37:02
Hola, intentalo asi de esta manera a ver si te funciona:
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.
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.
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, 04: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
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, 06:59:51
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
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.