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)
-   -   No puedo filtrar enteros (https://www.clubdelphi.com/foros/showthread.php?t=87075)

giulichajari 11-11-2014 23:01:18

No puedo filtrar enteros
 
Hola amigos tengo un zquery conectado a un debgrid. Y tengo 2 combobox: el primero dice cuit(de tipo entero) y nombre(string) y otro combo que dice empieza con y luego es parte de, la idea es que al colocar cuit se filtre de izquierda a derecha si se seleeciona empieza con, pero si se pone es parte de son todos los registros que coincidad en cualquier parte de la cadena de caracteres con lo introducido en el Edit. Esto funciona perfectamente para el nombre pero no para el cuil.

Código Delphi [-]
procedure TForm6.EfiltroChange(Sender: TObject);
begin

    if (CBFiltro.ItemIndex=0) then
      begin
        if (CBTB.ItemIndex=0) then
          begin
              with ClientModule1.qclientes do
                begin
                  Filter:='nombreyape like '''+Efiltro.Text+'*''';
                  Filtered:=True;

                end;

          end
          else
          if (CBTB.ItemIndex=1) then
               begin
                 with ClientModule1.qclientes do
                  begin
                    Filter:='nombreyape like '+ QuotedStr('*' + Efiltro.Text + '*');
                    Filtered:=True;
                  end;
               end;

      end
      else
        begin
          if (CBTB.ItemIndex=0) then
          begin
              with ClientModule1.qclientes do
                begin
                  Filter:='CUIT like '''+Efiltro.Text+'*''';
                  Filtered:=True;

                end;

          end
            else
              if (CBTB.ItemIndex=1) then
               begin
                 with ClientModule1.qclientes do
                  begin

                    Filter:='CUIT like ''*'+Efiltro.Text+ '*''' ;
                    Filtered:=True;
                  end;
               end;

        end;

end;

duilioisola 11-11-2014 23:09:25

No se qué base de datos estás utilizando, pero la idea sería que conviertas el número a string para luego compararlo:
Código Delphi [-]
Filter:='CAST(CUIT AS VARCHAR(30)) like '''+Efiltro.Text+'*''';

giulichajari 11-11-2014 23:17:31

Me dice ") expected" trabajo con mysql

duilioisola 12-11-2014 10:30:26

No trabajo con MySQL. Averigua como se hace un CAST y seguramente lo solucionarás...
CAST es conversión de un tipo a otro. En el ejemplo, de un integer a un varchar.


La franja horaria es GMT +2. Ahora son las 09:52:38.

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