Ver Mensaje Individual
  #1  
Antiguo 20-02-2008
solemno solemno is offline
Registrado
 
Registrado: feb 2008
Posts: 7
Reputación: 0
solemno Va por buen camino
Question 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;

Última edición por solemno fecha: 21-02-2008 a las 00:35:16. Razón: acomodar indentaciones +o-
Responder Con Cita