Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   ¿Como hacer que LIKE no sea case-sensitive? (https://www.clubdelphi.com/foros/showthread.php?t=34309)

JuanBCT 04-08-2006 17:25:27

¿Como hacer que LIKE no sea case-sensitive?
 
Hola, ¿que tal? Espero que alguien sepa de esto... estoy haciendo una búsqueda en un string con LIKE de la siguiente manera:

Código Delphi [-]
 
procedure TErrores_form.FlatSpeedButton2Click(Sender: TObject);
begin
with query1 do
begin
close;
sql.clear;
sql.Add('select * from errores');
sql.Add('where tipo_err like :cadena');
Params[0].asstring;
Params.ParambyName('cadena').asstring:=Concat('%',edit1.text,'%');
open;
end;

Funciona muy bien excepto que me diferencia mayúsculas y minúsculas, por ejemplo, si yo escribo "corrupt" trae un grupo de registros y si escribo "Corrupt" trae otro, lo que quiero es que escribiendo "corrupt" o "Corrupt" o "CoRRupT" por ejemplo, me devuelva toodos los que tengan la cadena corrupt escrita, sin diferenciar mayúsculas o minúsculas.
Buscando en la red encontré una forma de hacerlo pero no parece funcionar, me devuelve la grilla vacía. El código quedaría así:

Código Delphi [-]
 
procedure TErrores_form.FlatSpeedButton2Click(Sender: TObject);
begin
with query1 do
begin
close;
sql.clear;
sql.Add('select * from errores');
sql.Add('where upper(tipo_err) like :cadena');
Params[0].asstring;
Params.ParambyName('cadena').asstring:=Concat('%#ucase(',edit1.text,')#%');
open;
end;

¿A alguien se le ocurre algo? Desde ya les agradezco, un saludo.

Juan

vtdeleon 04-08-2006 17:36:41

Saludos

Facil, en esta linea agregar upper en la cadena
Código Delphi [-]
sql.Add('where upper(tipo_err) like upper(:cadena)');
Y seguir con esta linea
Código Delphi [-]
Params.ParambyName('cadena').asstring:='%'+edit1.text+'%';
Esta linea está de mas.
Cita:

Código Delphi [-]
Params[0].asstring;


ContraVeneno 04-08-2006 17:49:19

La otra forma

JuanBCT 04-08-2006 21:50:28

Les agradezco mucho su ayuda, lo pude solucionar y anduvo bárbaro. Saludos!

Juan.


La franja horaria es GMT +2. Ahora son las 17:12:27.

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