Hola.
Estoy tratando de adaptar un aplicacion que empleaba bde,

ahora empleo los IBX (MDO) y con paciencia va funcionando.

Tengo una rejilla con un boton por el cual me filtraba los datos segun la columna donde se encuentre el cursor. Ahora no hay tabla sino un MDODataset,
cuando lo ejecuto observo que el filtrado lo ejecuta pero no me actualiza los datos en la rejilla. Sabeis donde he fallado..Soy novata y empleo D6 IB6.Gacias.
Código Delphi
[-] procedure TV_equipo.Filtrar(Sender: TObject);
const
TiposConComillas:set of TfieldType
=[ftstring, ftdate, fttime,ftdatetime];
var
Campo, Operador, Valor:string;
I:integer;
begin
if sender= migual then
operador:='='
else if sender= mMayorigual then
operador:='>='
else if sender= mMenorigual then
operador:='<='
else
operador:='<>';
Campo:=Rxdbgrid1.SelectedField.FieldName;
if rxdbgrid1.SelectedField.DataType in TiposconComillas then
begin
if Rxdbgrid1.SelectedField.IsNull then valor :='null'
else
valor:=quotedstr(Rxdbgrid1.SelectedField.AsString); end
else begin
valor:=Rxdbgrid1.SelectedField.AsString ;
for I := 1 to length(valor) do
if valor[i]=DecimalSeparator then Valor[i]:='.';
end ;
If DMDatos.Dset_equipo.Filter='' then
DMDatos.Dset_equipo.filter:=format('[%s] %s %s',[Campo,Operador, Valor])
else
DMDatos.Dset_equipo.filter:=format('%s AND [%s] %s %s',
[DMDatos.Dset_equipo.filter,Campo,Operador, Valor]);
mactivarfiltro.Checked:=true;
DMDatos.Dset_equipo.Filtered:=true;
DMDatos.Dset_equipo.RefreshSQL;
label1.Caption:=inttostr(DMDatos.Dset_equipo.RecordCount);
end;
Esta utilidad fue extraida de la "Cara oculta de D4"