Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Query con LIKE sobre EDIT (https://www.clubdelphi.com/foros/showthread.php?t=77390)

pape19 20-01-2012 15:44:42

Query con LIKE sobre EDIT
 
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??

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 = ' + '''' + Edit1.Text + '''' );
IBQuery1.Open;

GRACIASSSSSSSSSSSSS

aposi 20-01-2012 16:31:56

Código Delphi [-]
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:
Código Delphi [-]
  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!


La franja horaria es GMT +2. Ahora son las 04:58:38.

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