Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Busqueda Booleana con IBDataset (https://www.clubdelphi.com/foros/showthread.php?t=79818)

n03l 12-08-2012 23:20:46

Busqueda Booleana con IBDataset
 
saludos, acudo a uds a ver si me echan una manita en lo siguiente:

Tengo que hacer una busqueda en una tabla (Firebird y IBDataset):

esto es lo que estoy haciendo:
cuando abro el IBDataset solo llamo los ultimos 100 registros insertados en tabla
Código Delphi [-]
SelectSQL.Text:='select First 100 * from clientes ORDER by c DESC';

el problema que tengo esque necesito crear una condicion de busqueda en esta tabla pero que busque en todos los datos de la tabla y no nada mas en los 100

tengo este codigo con el cual hago busquedas y funciona bien
Código Delphi [-]
with IBDataset do
  begin
    Close;
    SelectSQL.Text:='SELECT * FROM CLIENTES WHERE NOMBRE LIKE :VALUE';
    ParamByName('VALUE').Value:= Edit1.Text + '%';
    Open;
  end;
pero yo quisiera buscar con el condicional if
Código Delphi [-]
if encuentro_cliente then
ShowMessage('Encontrado')
else
ShowMessage('No_Existe')

Cual seria la manera mas eficiente para hacer la busqueda Booleana en este caso?

saludos....

ecfisa 12-08-2012 23:58:42

Hola.

Podrías valerte del método IsEmpty, por ejemplo:
Código Delphi [-]
function ClienteExiste(aDataSet: TIBDataSet; aName: string):Boolean;
begin
  with aDataSet do
  begin
    Close;
    SelectSQL.Text:='SELECT * FROM CLIENTES WHERE NOMBRE LIKE :VALUE';
    ParamByName('VALUE').Value:= aName;
    Open;
    Result:= not IsEmpty;
  end;
end;

Llamada ejemplo:
Código Delphi [-]
...
  if ClienteExiste(IBDataSet,Edit1.Text) then
    ShowMessage('existe')
  else
    ShowMessage('no existe')
...

Saludos.

Casimiro Notevi 13-08-2012 00:42:48

Al usar First 100 no le estás diciendo que traiga los primeros 100, sino los primeros 100 del select que hayas usado.
O sea, que si pones:

Código SQL [-]
select first 100 from tbClientes where telefono containing '123'

Te traerá los primeros 100 que cumplan esa condición.

n03l 13-08-2012 15:20:20

Ok Muchas Gracias, Me sirvio bastante su ayuda..

Cañones 14-08-2012 20:52:08

Cita:

Empezado por Casimiro Notevi (Mensaje 439442)
Al usar First 100 no le estás diciendo que traiga los primeros 100, sino los primeros 100 del select que hayas usado.

Te traerá los primeros 100 que cumplan esa condición.

No sabía de la existencia del comando first.
Gracias.

Casimiro Notevi 15-08-2012 09:39:26

Y también puedes indicarle que se sale una cantidad de registros, ejemplo:

Código SQL [-]
select first 100 skip 5 * from tbclientes

Chris 15-08-2012 17:15:03

Cita:

Empezado por Cañones (Mensaje 439586)
No sabía de la existencia del comando first.
Gracias.

Los alteradores FIRST y SKIP se utilizan para realizar paginadores. Los clásicos: Ver página 1 de 100 de Google.

Saludos.


La franja horaria es GMT +2. Ahora son las 08:36:57.

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