Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-05-2010
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Exclamation Busqueda incremental con ComboBox

Tengo un pequeño problema en el cual espero peudan ayudarme.
Necesito hacer una busqueda incremental en una base de datos, encontre este codigo que funciona bastante bien:

Código Delphi [-]
procedure TProductos.Edit1Change(Sender: TObject);
Var
Valor,Valor1 : String;
begin
     if Edit1.text = '' then
     begin
     BDatos.ZTable3.Filtered := false;
     exit;
     end;
         BDatos.ZTable3.Locate('CODIGO', Edit1.Text,[loPartialKey,loCaseInsensitive]);
         valor := Edit1.Text;
         Valor1 := Valor;
         inc(valor1[length(Valor1)]);
         BDatos.ZTable3.Filter := 'CODIGO >= '+QuotedStr(Valor)+ ' and CODIGO < ' +QuotedStr(valor1);
         BDatos.ZTable3.Filtered := true;
          end;
end.

La pregunta es si se puede cambiar 'CODIGO' por el texto que seleccione en un ComboBox, ya que necesito buscar por mas de un criterio, si no se puede... existe otra manera de hacer lo que necesito??? de antemano muchisimas gracias...
Responder Con Cita
  #2  
Antiguo 17-05-2010
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Ya pude hacerlo!!!

Bueno, acudi a la vieja escuela "Prueba y Error" y dio sus frutos...
Por si a alguien le sirve ak ta:

Código Delphi [-]
procedure TProductos.Edit1Change(Sender: TObject);
Var
Valor,Valor1 : String;
begin
     if Edit1.text = '' then
     begin
     BDatos.ZTable3.Filtered := false;
     exit;
     end;
         BDatos.ZTable3.Locate(ComboBox1.Text, Edit1.Text,[loPartialKey,loCaseInsensitive]);
         valor := Edit1.Text;
         Valor1 := Valor;
         inc(valor1[length(Valor1)]);
         BDatos.ZTable3.Filter := ''+ComboBox1.Text+' >= '+QuotedStr(Valor)+ ' and '+ComboBox1.Text+' < ' +QuotedStr(valor1);
         BDatos.ZTable3.Filtered := true;
          end;
end.

Asi funciona de perlas, tambien en el OnChange del combobox inclui esto:

Código Delphi [-]
procedure TProductos.ComboBox1Change(Sender: TObject);
begin
Edit1.Clear;
end;

Con esto nos aseguramos hacer una busqueda en blanco por cada criterio elegido, Gracias de todos modos siempre han respondido mis preguntas dando respuestas claras y espero que esta duda le sirva a futuro a alguien, Byes!!!

PD: Si alguien encuentra un error, correccion o mejor manera de abordar el problema, feliz de resivir cualquier sugerencia/cambio... Byes!!!
Responder Con Cita
  #3  
Antiguo 18-05-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Lenny.

No analizé tu código a fondo (ya que decis que funciona y te creo ), pero la
función locate es una de las más ineficientes...

Mejor sería usar un componente TQuery para filtrar la consulta.

Por ejemplo:
Código:
procedure TForm1.Edit1Change(Sender: TObject);
begin
  with Query1 do
  begin
    Close;
    SQL.Text:= 'SELECT * FROM ZTABLE3'+
               ' WHERE CODIGO >= ' + QuotedStr(ComboBox1.Text)+
               ' AND CODIGO <= ' + QuotedStr(Edit1.Text);
    Open;
  end
end;
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 18-05-2010 a las 01:07:51.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
busqueda incremental con mysql schaka SQL 2 09-02-2008 04:56:06
Implementar un ComboBox para busqueda Maury Manosalva Conexión con bases de datos 1 28-04-2006 19:42:30
Incremental en red jgmarduel Conexión con bases de datos 3 19-12-2005 15:52:36
Consulta Busqueda Incremental Gustavo Gowdak SQL 1 13-12-2004 09:27:08
busqueda incremental con ado slat Conexión con bases de datos 1 11-07-2004 18:32:52


La franja horaria es GMT +2. Ahora son las 17:45:34.


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
Copyright 1996-2007 Club Delphi