Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Filtrar query con edit (https://www.clubdelphi.com/foros/showthread.php?t=53161)

teclilla 12-02-2008 18:46:57

Filtrar query con edit
 
Hola,
estoy realizando una aplicacion en delphi 5 para generar presuspuesto con base de datos en paradox, tengo el formulario presupuestos, en el cual se pueden dar de alta, modificar, eliminar y buscar, mi problema es a la hora de buscar un presupuesto ya que realizo lo siguiente:

procedure TFormBusPresupuesto.EditBusPresupuestoChange(Sender: TObject);
begin
if EditBusPresupuesto.Text = '' then QueryBuscaPresupuesto.Filtered:=false
else
begin
if length(EditBusPresupuesto.text) <= 10
then QueryBuscaPresupuesto.Filter:='Idpres='''+EditBusPresupuesto.Text+'*''';
QueryBuscaPresupuesto.Filtered:=true;
end;
end;

El campo (clave) Idpress es de tipo longInt y recoge el numero de presupuesto, pues al realizar el filtro creo que no concuerdan los tipos, ya que EditBusPresupuesto.Text es string,
Gracias de antemano.:)

eduarcol 12-02-2008 18:58:38

Hola teclilla, encierra el codigo entre las etiquetas delphi para una mayor legibilidad

prueba con esto a ver si funciona:

Código Delphi [-]
procedure TFormBusPresupuesto.EditBusPresupuestoChange(Sender: TObject);
begin
if EditBusPresupuesto.Text = '' then QueryBuscaPresupuesto.Filtered:=false
else
begin
if length(EditBusPresupuesto.text) <= 10
then QueryBuscaPresupuesto.Filter:='Idpres='+EditBusPresupuesto.Text;
QueryBuscaPresupuesto.Filtered:=true;
end;
end;

Fijate que le quito el * y las comillas entre la que los encierras ya que esos son comodines para texto, prueba y avisas que tal

enecumene 12-02-2008 18:59:25

Si el campo clave es Integer solo debes quitar el comodín (*), pues solo se usa para campos strings.

Saludos.

EDITO: Eduarcol me ganaste por unos segundos.

Caral 12-02-2008 18:59:54

Hola
Código Delphi [-]
procedure TFormBusPresupuesto.EditBusPresupuestoChange(Sender: TObject);
begin
if length(EditBusPresupuesto.text) <= 10
then 
QueryBuscaPresupuesto.SQL.Text := 'Select Idpres From TUTabla Where Idpres = :ID';
QueryBuscaPresupuesto.Parameters[0].Value:= EditBusPresupuesto.Text; 
QueryBuscaPresupuesto.Open;
end;
Los Filtros se vuelven muy lentos con el tiempo, es preferible usar sql.
Saludos

Caral 12-02-2008 19:01:52

Hola
Que estamos en competencia????:D:D:D:D
Me ganasteis por segundos.:D:D
Saludos

eduarcol 12-02-2008 19:06:06

o Dios Caralus, es que aqui en el olimpo estamos muy desocupados ultimamente, :D:D

teclilla 13-02-2008 01:09:32

Muchas gracias, ya llevaba varios dias atascada (y todo por un *), me habeis alumbrado :) . Caral tambien me quedo con tu manera de resolverlo, es muy interesante y no se me habia ocurrido.
GRACIAS A TODOS.


La franja horaria es GMT +2. Ahora son las 06:28:13.

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