PDA

Ver la Versión Completa : Query con LIKE sobre EDIT


pape19
20-01-2012, 15:44:42
Buenas tardes!

Me surgió un problema, que luego de investigar un poco en la internet, no pude solucionar.

La cosa es asi, tengo un Query, que utiliza lo que el usuario ingresa en un edit, para filtrar la tabla de mi BD. Lo que el usuario ingresa es un nombre o letra/s.

Lo que quiero lograr es que, si el usuario ingresa una D solamente, entonces la query devuelva los nombres que empiecen con D.

Se que esto se hace utilizando LIKE %D%, pero me cuesta implementarlo en delphi. Como modificarían mi código que aquí abajo describo??

IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('SELECT D.USUARIO_ID, D.FECHA, D.INICIO, D.FIN, U.NCOMPLETO');
IBQuery1.SQL.Add('FROM BTN_DESC_DESCANSOS D, USUARIOS U');
IBQuery1.SQL.Add('WHERE D.USUARIO_ID = U.ID');
IBQuery1.SQL.Add('AND U.NCOMPLETO = ' + '''' + Edit1.Text + '''' );
IBQuery1.Open;

GRACIASSSSSSSSSSSSS

aposi
20-01-2012, 16:31:56
Código Delphi
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('SELECT D.USUARIO_ID, D.FECHA, D.INICIO, D.FIN, U.NCOMPLETO');
IBQuery1.SQL.Add('FROM BTN_DESC_DESCANSOS D, USUARIOS U');
IBQuery1.SQL.Add('WHERE D.USUARIO_ID = U.ID');
IBQuery1.SQL.Add('AND U.NCOMPLETO LIKE ''%'+ Edit1.Text + '%''' );
IBQuery1.Open;



Piensa que si pones el % inicial, el resultado seran todos los registros con una D, para que solo sean los que empiezan por lo escrito en el edit
tienes que quitar el primer %
LIKE D% -> Empiezan por D
LIKE %D% -> Contienen la D
Like %D -> Finalizan con la letra D

ecfisa
20-01-2012, 16:36:17
Hola.

Otro modo:

with IBQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT D.USUARIO_ID, D.FECHA, D.INICIO, D.FIN, U.NCOMPLETO ');
SQL.Add('FROM BTN_DESC_DESCANSOS D, USUARIOS U ');
SQL.Add('WHERE D.USUARIO_ID = U.ID ');
SQL.Add('AND U.NCOMPLETO LIKE :NOMBRE' );
ParamByName('NOMBRE').AsString:= Edit1.Text + '%';
Open;
end;


Saludos.

pape19
23-01-2012, 13:41:48
gracias a ustedes aprendí a utilizar el LIKE.

Muchísimas gracias!