Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-04-2018
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Código Delphi [-]
CDS.Filter := CDS.Filter + ' and ...';

Por cierto, intenta evitar el uso de With. Es como Facebook: en principio parece algo bueno, pero es el mismísimo Diablo.

Saludos.
Responder Con Cita
  #2  
Antiguo 22-04-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Al González Ver Mensaje
Por cierto, intenta evitar el uso de With. Es como Facebook: en principio parece algo bueno, pero es el mismísimo Diablo.
Muy bueno
Responder Con Cita
  #3  
Antiguo 23-04-2018
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 22
gatosoft Va camino a la fama
Cita:
Empezado por Al González Ver Mensaje
Código Delphi [-]
CDS.Filter := CDS.Filter + ' and ...';
Por cierto, intenta evitar el uso de With. Es como Facebook: en principio parece algo bueno, pero es el mismísimo Diablo.
Saludos.
De acuerdo con Al. el código debería ser algo como:


Código Delphi [-]
Filtered:=False;        
Filter:='';          
if form3.ENOMBRE.Text<>'' then
   Filter:= Filter +Ifthen(Filter='','',' and ')+'nombre like '+QuotedStr('%' + Form3.ENOMBRE.Text+'%');            
   
if Form3.DBLCBCATEGORIA.KeyValue<>null then
   Filter:= Filter +Ifthen(Filter='','',' and ')+'idcategoria=' + IntToStr( form3.DBLCBCATEGORIA.KeyValue) ; 
   
 if Form3.DBLCBMARCA.KeyValue<>null then
   Filter:= Filter +Ifthen(Filter='','',' and ')+'idmarca='+ Inttostr(Form3.DBLCBMARCA.KeyValue);
Filtered:=True;

La función Ifthen la encuentras en: StrUtils, si el resultado es texto y en Math si el resultado es numérico (!!??)

Existe otra alternativay es programar el evento OnFilterRecord del Dataste. Ésta se utiliza cuando la condición es mas complicada, por ejemplo:

Código Delphi [-]
procedure DTM.QueryFilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
 Accept:= (CumpleCondicion1(Parametros) and (Random(100) > 50) ) or (Nombre<>'');
end;
y el código para filtrar sería:

Código Delphi [-]
CDS.Filtered:= False;
CDS.Filtered:= True; //aquí dispara el evento
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Duda en Delphi 7 tres capas, clientdataset + datasetprovider moronoz Conexión con bases de datos 0 30-05-2014 16:55:24
Filtros para un TTable georgejg Oracle 12 08-03-2008 00:09:39
error filtros con like en clientdataset Raisencor Providers 1 09-09-2004 20:00:10
Consulta para tres tablas...... inexperto SQL 1 08-08-2004 06:59:04
Filtros en Clientdataset asirvent Conexión con bases de datos 16 24-11-2003 01:06:21


La franja horaria es GMT +2. Ahora son las 15:57:12.


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
Copyright 1996-2007 Club Delphi