Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-12-2014
Minoru Minoru is offline
Miembro
NULL
 
Registrado: dic 2014
Posts: 22
Poder: 0
Minoru Va por buen camino
Smile Como usar filtros en el componente IBDataSet

Ya borre todo lo que tenia en SQLDB y cree todo al IBX FIREBIRD

Codigo IBX FIREBIRD:
https://www.dropbox.com/s/z1gv3b0107...er1.4.rar?dl=0

ya solucione el error del memo, vincule los datos al form2, ya cree el reporte.
ya guarda los datos cuando edito con el DBNavigator. (Que por una extraña razón con el SQLDB no podía , solo moverme por los ítem y no editar.
motivo de mi post) veo que con IBX si puedo...

pero tengo el siguiente problema. que no logro hacer el filtro con IBX


Última edición por Minoru fecha: 20-12-2014 a las 01:43:54.
Responder Con Cita
  #2  
Antiguo 20-12-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Minoru.

El TIBDataSet no modifica de forma automática la cadena SQL al activar la propiedad Filtered como lo hace el TIBTable. Y la propiedad Filter sólo aparece en este componente por derivar de TDataSet y estar publicada en este último, en resumen: en el TIBDataSet no funciona. (No sé si esto habrá cambiado en versiones posteriores o en la de Lazarus).

La alternativa es usar el evento OnFilterRecord por ejemplo:
Código Delphi [-]
procedure TForm1.IBDataSet1FilterRecord(DataSet: TDataSet;
  var Accept: Boolean);
begin
  Accept:= IBDataSet1.FieldByName(EditCampo.Text).AsString = EditFiltro.Text;
end;

// Activar/desactivar filtro
procedure TForm1.btnFiltrarClick(Sender: TObject);
begin
  IBDataSet1.Filtered:= not IBDataSet1.Filtered;
end;

De todos modos el uso de filtros provoca un alto tráfico de red y degradación del rendimiento, siempre es preferible filtrar por la cláusula WHERE en la sentencia SQL, ejemplo:
Código Delphi [-]
...
implementation

// Consulta inicial
const
  ORIG_CONS = 'SELECT * FROM TU_TABLA';

procedure ShowByField(aDataSet: TIBDataSet; const Campo, Filtro: string);
begin
  with aDataSet do
  begin
    Close;
    SelectSQL.Clear;
    SelectSQL.Add(ORIG_CONS);
    SelectSQL.Add('WHERE '+ Campo +' = :PARAM');
    ParamByName('PARAM').AsString:= Filtro;
    Open;
  end;
end;

// Fijar filtro
procedure TForm1.btnFiltrarClick(Sender: TObject);
begin
  ShowByField(IBDataSet1,EditCampo.Text, EditFiltro.Text);
  btnFiltrar.Enabled:= False;
end;

// Quitar filtro
procedure TForm1.btnQuitarFiltroClick(Sender: TObject);
begin
  IBDataSet1.Close;
  IBDataSet1.SelectSQL.Text:= ORIG_CONS;
  IBDataSet1.Open;
  btnFiltrar.Enabled:= True;
end;

Nota: Te preguntarás por que moví tu mensaje del hilo anterior creando uno nuevo... Es debido a que una pregunta que no tiene relación con la consulta inicial hay que ponerla en un nuevo hilo, por favor la próxima vez hazlo así

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 20-12-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ahora toca el tutorial de SQL
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
¿Como usar el componente IbEvents? MartinS OOP 11 07-05-2012 16:25:07
como usar el componente lblmarquee gaston260 API de Windows 0 25-08-2010 02:21:43
Usar filtros por mas de un campo con applyranges zugazua2001 Varios 1 26-06-2007 15:20:58
como usar un ibdataset en dos forms distintas.... uper Firebird e Interbase 3 02-08-2005 19:45:23
¿como usar un componente? mrmanuel OOP 3 12-05-2003 22:12:36


La franja horaria es GMT +2. Ahora son las 05:19:24.


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