Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: TQuery filtern funktioniert nicht

  Alt 18. Sep 2007, 21:05
Hallo,

da du mit TQuery arbeitest ist es eventuell vorteilhafter, wenn du die Selektion über eine WHERE Klausel machst. In der Filter-Eigenschaft wird ein Datum-Literal in dem durch ShortDateFormat festgelegten Format angegeben, was du in deinem ersten Versuch richtig gemacht hast. Bist du sicher, dass das Feld "datum" den Typ "date" besitzt? Bei "datetime" müsstest du einen Intervalltest durchführen, damit du Treffer erhältst.

Delphi-Quellcode:
procedure test;
var
  dt: TDateTime;
  dtMin, dtSup: string;
begin
  dt := EncodeDate(2001, 1, 1);
  dtMin := QuotedStr(DateToStr(dt));
  dtSup := QuotedStr(DateToStr(dt + 1));
  qry.Close;
  // hier einer von mehreren möglichen Ansätzen
  qry.Filter := Format('datum >= %s and datum < %s', [dtMin, dtSup]);
  qry.Filtered := True;
  qry.Open;
end;
Falls das Feld doch vom Typ DATE sein sollte, dann erweitere mal das Testintervall, bis du Treffer erhältst. Nicht das du am Ende feststellst, dass du mit den falschen Daten getestet hast...

Grüße vom marabu
  Mit Zitat antworten Zitat