PDA

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.

Caro
06-12-2007, 13: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.


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

Lepe
07-12-2007, 14: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, 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