Ver Mensaje Individual
  #9  
Antiguo 23-03-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Reputación: 25
Caral Va por buen camino
Hola
egostar: Efectivamente se puede hacer el filtro por sentencia sql, posiblemente mas efectivamente pero en este caso me quedo un poco mas comodo hacerlo asi.
Gracias por tu explicacion, ya tenia mas o menos el camino, lo que pasa es que me empeño en no usar el try except, porque en diseño genera un error y particularmente no me gusta, asi es como lo tengo, pero no lo voy a dejar.
Código Delphi [-]
var
   Filtro : String;
begin
   If (Edit1.Text <> '') then
   begin
   AdoQuery1.Filtered := false;
   Filtro := ComboBox2.Text+ ' Like '''+Edit1.Text+ '*''';
   ADOQuery1.Filter := Filtro;
   //showmessage(Filtro);
   try
      ADOQuery1.Filtered := True;
   except
      try
         Filtro := ComboBox2.Text+ ' Like '+Edit1.Text;
         ADOQuery1.Filter := Filtro;
         ADOQuery1.Filtered := True;
      except
         Filtro := ComboBox2.Text+ ' >= '+Edit1.Text;
         ADOQuery1.Filter := Filtro;
         //showmessage(Filtro);
         ADOQuery1.Filtered := True;
      end;
   end
    end
   else ADOQuery1.Filtered := False;
Lepe: Gracias por la explicacion, efectivamente por ese camino estoy, entiendo bien lo de String e integer, en este filtro en especial lo que pretendo es el cambio continuo por eso en este caso el signo = no me camina, estoy tratando con >= que funciona mas adecuadamente aun asi sigo pensando y recibiendo sugerencias.
Una opcion que se me ha ocurrido es hacer el cambio en un combobox, asi definiria el tipo de campo, integer, float, string y simplemente me daria el resultado , no se que tal os parece, habra otra opcion?.Seguro que si.
Gracias por la ayuda que me dais.
Saludos
Responder Con Cita