Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   problemas con consulta dinamica (https://www.clubdelphi.com/foros/showthread.php?t=73354)

oktubre 16-04-2011 02:05:08

problemas con consulta dinamica
 
Estimados,
estoy programando un formulario donde tengo un dbgrid de delphi 6, un edit text
en el edit le puse el codigo que copio mas abajo para que cuando el usuario va escribiendo el codigo del producto valla filtrando lo que me muestra el dbgrid
Código Delphi [-]
 
procedure TForm3.EditcodigoKeyDown(Sender: TObject; var Key: Word;  Shift: TShiftState);
var
  clavecodigo : string;
  Qintro : string ;
begin
  clavecodigo := numerodfact ;        // clavecodigo es el numero de ticket
  editcodigo.SetFocus ;
  Qintro := 'SELECT * FROM ARTICULOS WHERE Codigo LIKE "' +
             editcodigo.Text  +'%"';
  if editcodigo.Text <> '' then       // edit codigo es el numero de producto
  begin 
    Qproducto.SQL.Clear;
    Qproducto.SQL.Add(Qintro)   ;
    Qproducto.Open ;
   // Qproducto.ExecSQL ;
   // Qproducto.SQL.Clear;
   // Qproducto.Close ;
  end ;
end;

y lo que sucede es que va filtrando pero si preciono la tecla "1" no filtra hasta que preciono cualquier otra.
me explico? es como que necesita de un apretar mas para realizar esto y mi idea era que lo haga con cada tecla que voy apretando.
si a alguien se le ocurre en donde estoy metiendo la pata les voy a agradecer la ayuda.
saludos,
esteban oktubre

maeyanes 16-04-2011 02:59:30

Hola...

Bienvenido a los foros de Club Delphi. Primero que nada, te recomiendo que leas la Guía de Estilo de los foros (enlace en mi firma).

Creo que tu problema se encuentra en que este código lo ejecutas en el evento OnKeyDown del TEdit.

Prueba usando el evento OnChange:

Código Delphi [-]
procedure TForm3.EditCodigoChange(Sender: TObject);
var
  QIntro: string;

begin
  if EditCodigo.Text <> '' then
  begin
    QIntro := Format('select * from ARTICULOS where CODIGO like ''%s%%''', [EditCodigo.Text]);
    QProducto.SQL.Text := QIntro;
    QProducto.Open
  end
end;


Saludos...

oktubre 16-04-2011 14:30:10

funciono tal como queria
 
lo probe y funciona perfecto.
mil gracias,
oktubre

Gean 16-04-2011 23:52:18

También puedes ponerlo en vez de en el OnKeyDown, en el OnKeyUp, así creo que te funcionaria


La franja horaria es GMT +2. Ahora son las 19:37:23.

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