Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Filtro en un TDbMemo (https://www.clubdelphi.com/foros/showthread.php?t=53442)

solemno 20-02-2008 22:03:26

Filtro en un TDbMemo
 
Tengo una base de datos de ejemplares que en un principio se podrían filtrar según nombre, raza, criador, Etc.
Por lo cual a la hora de diseñar la base de datos todos estos campos fueron previstos como simples TDbStrings para facilitar la tarea de filtrarlos.
El problema me surge cuando el proyecto ya esta en la etapa final de desarrollo y me piden que a la lista de filtros posibles le agregue dos filtros adicionales (por madre y padre).
A la hora de diseñar la BD se me ocurrio que como los padres de los ejemplares no nesesariamente estarían cargados en la base de datos darle un formato de TDbMemo para itroducir toda la "poca" info necsaria a tal efecto.

Quiero aplicar algun filtro del tipo (si esta cadena de caracteres está en el TDbMemo)

Código Delphi [-]
 // siempre que el checkbox correpondiente este activo aplicar el filtro 
 // si el fitro actual es '' (no tiene) aplicar directamente el filtro
 // si ya hay un filtro (not = '') agregar [and] antes de agregar
 if (Modulo.Tbperro.Filter='') then  
 begin     Modulo.Tbperro.Filter:='(nombre='+QuotedStr(FiltroNombre.Text+'*')+')';
 end else  
 begin     
      Modulo.Tbperro.Filter:=Modulo.Tbperro.Filter+'AND (nombre='+QuotedStr(
      FiltroNombre.Text+'*')+')';
 end;
end;
if filtercheckraza.Checked then 
begin     
if (Modulo.Tbperro.Filter='')   then  
begin     
Modulo.Tbperro.Filter:='(raza='+QuotedStr(FiltroRaza.Text+'*')+')';
 end else  
begin     
Modulo.Tbperro.Filter:=Modulo.Tbperro.Filter+'AND (raza='+QuotedStr(
      FiltroRaza.Text+'*')+')';
 end;
end;

.
.
.
.
.
// aquí me salta error porque no se aplicar el filtro "instring"
// en el DbMemo

 if FilterCheckPadre.Checked then   
begin   
if (Modulo.Tbperro.Filter='')  then   
begin     
     Modulo.Tbperro.Filter:='(generacion2_1='+QuotedStr(
      ComboBoxPadres.Text+'*')+')';
  end else   
begin     
 Modulo.Tbperro.Filter:=Modulo.Tbperro.Filter+'AND (generacion2_1='+QuotedStr(
      ComboBoxPadres.Text+'*')+')';
  end;


La franja horaria es GMT +2. Ahora son las 19:01:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi