Hola a todos.
Empleo D6 MDO Interbase, Estoy tratando de efectuar unos filtros en una rejilla,
![Roll Eyes (Sarcastic)](http://www.clubdelphi.com/foros/images/smilies/rolleyes.gif)
(bueno los filter en MDODataset no se porque no me funcionan).
He modificado las tablas por MDOdataset. Supongamos que un campo fecha
01/12/2005
Código Delphi
[-]
procedure TV_equipo.Filtrar(Sender: TObject);
const
TiposConComillas:set of TfieldType
=[ftstring, ftdate, fttime,ftdatetime];
var
Campo, Operador, Valor, valor2, sino:string;
I:integer;
begin
sino:='';
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.DataType=ftdate then
begin
valor:=':tfecha';
valor2:=Rxdbgrid1.SelectedField.AsString end else begin
valor:=quotedstr(Rxdbgrid1.SelectedField.AsString); end;
if (Rxdbgrid1.SelectedField.IsNull) and(rxdbgrid1.SelectedField.DataType<>ftdate)then
begin
valor :='is null'; if operador<>'=' then sino:='NOT '; operador:='' end ;
end else begin
valor:=Rxdbgrid1.SelectedField.AsString ;
for I := 1 to length(valor) do
if valor[i]=DecimalSeparator then Valor[i]:='.';
end ;
if mActivarfiltro.Checked=false then
begin
with DMDatos.Dsetequipos do
begin
Close;
SelectSQL.Clear;
SelectSQL.Add('SELECT * FROM equipos');
SelectSQL.add('WHERE '+sino+ format('%s %s %s',[Campo,Operador,Valor]));
if (rxdbgrid1.SelectedField.DataType=ftdate) and (valor<>'is null') then
DMDatos.Dsetequipos.ParamByName('tfecha').asdate:=strtodate(valor2);
SelectSQL.Add('ORDER BY '+Campo);
Open;
end;
Todo bien menos con las fechas.
Problema con las fechas: como le digo que deseo todas las fechas distinta de la señalada?. Salu2 Kia Gracias (Soy novata con Interbase).
![Smilie](http://www.clubdelphi.com/foros/images/smilies/smile.gif)