Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Filtro en MySQL (https://www.clubdelphi.com/foros/showthread.php?t=71845)

Lenny 13-01-2011 22:42:53

Filtro en MySQL
 
Buenas y gracias de antemano les explico...

Tengo un filtro que trabaja de perlas, utilizo este codigo:

Código Delphi [-]
Var
Valor,Valor1 : String;
begin
     if Edit1.Text = '' then
     begin
     BDATOS.PRODUCTOSTAB.Filtered := False;
     Exit;
     end;
         BDATOS.PRODUCTOSTAB.Locate(ComboBox1.Text, Edit1.Text,[loPartialKey,loCaseInsensitive]);
         valor := Edit1.Text;
         Valor1 := Valor;
         inc(valor1[length(Valor1)]);
         BDatos.PRODUCTOSTAB.Filter := ''+ComboBox1.Text+' >= '+QuotedStr(Valor)+ ' and '+ComboBox1.Text+' < ' +QuotedStr(valor1);
         BDatos.PRODUCTOSTAB.Filtered := true;
          end;

La idea es elegir desde un ComboBox el valor a filtrar, luego en un Edit escrivir el valor a filtrar (en este caso "YT27-0..."), funciona Ok, pero hoy me e puesto a hacer pruebas y cuando filtro por "YT27" todo Ok, pero si coloco "YT27-" se queda todo en blanco, si sigo "YT27-0" el filtro continua como si nada y aparecen los productos correspondientes... que puede ser??? de antemano muchisimas gracias...

PD: Utilizo Delphi 2010, Zeos 7.0.0, MySQL...

cloayza 14-01-2011 14:14:46

Creo que este tipo de filtro quedaria mejor hacerlo con una sentencia

Código SQL [-]
SELECT CAMPO1, CAMPO2
FROM PRODUCTOSTAB
WHERE CAMPO_FILTRO LIKE 'Valor%'

La gracia de esto es la sentencia LIKE y el %.

Hara una seleccion de Campo_Filtro que contenga el 'Valor' y no importando lo que siga despues...

Suponiento que Campo_Filtro sea igual a 'YT27-'
Forma 1: Que comienze con YT27
Código SQL [-]
WHERE CAMPO_FILTRO LIKE 'YT27%'
Forma 2: Que finalize con YT27
Código SQL [-]
WHERE CAMPO_FILTRO LIKE '%YT27'
Forma 2: Que contenga YT27
Código SQL [-]
WHERE CAMPO_FILTRO LIKE '%YT27%'

Espero haber sido claro en la explicación...

Saludos


La franja horaria es GMT +2. Ahora son las 13:17:33.

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