Entwickler-Ecke

Datenbanken - ADS-Query und "ADSSetFilter


Klaus D. - So 14.12.03 11:40
Titel: ADS-Query und "ADSSetFilter
Morgen Morgen

1.

Delphi-Quelltext
1:
2:
3:
 frmDataMod.SQL_Typenschild.Filtered:=false;
 frmDataMod.SQL_Typenschild.Filter := 'MOTORART = ' +   QuotedStr(SuchCombobox1.Text);
frmDataMod.SQL_Typenschild.Filtered:=True

funktioniert Problemlos mit der ADSQury
2.

Delphi-Quelltext
1:
frmDataMod.SQL_Typenschild.ADSSETFilter ( 'Motorart ='+#39+ SuchCombobox1.Text+#39  );                    

funktioniert nur bei ADSTable
mein Problem ist, daß ich eigentlich Code2 nutzen möchte, von wegen der Schreibarbeit.geht aber nicht...WARUM?

MfG Klaus


Moderiert von user profile iconPeter Lustig: Code- durch Delphi-Tags ersetzt


Klabautermann - So 14.12.03 14:57

Hallo,

also meine Advantage Hilfe sagt, dass diese Methode nur für Tables nicht für Querrys vorhanden ist (Siehe: Advantage Extendet Methods). Allerdings ist die auch noch für die 6.2er Version. Kann sein dass die das mitlerweile ausgedehnt haben, dann hätte ich aber keine Erklährung mehr wieso es nicht geht ;).
Wenn du aber nur Tipparbeit sparen willst, dann schreibe dir doch einfach eine Funktion zum Filter setzen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
function SetFilter(aDataSet : tDataset; aFilter : string) : Boolean;
begin
  aDataset.Filtered := FALSE;
  aDataSet.Filter := aFilter;
  try
    aDataSet.Filtered := true;
    result := true;
  except
    result := False
  end;
end;

Das funktioniert mit allen Datenbanken, die dir von tDataset Abgeleiterte Komponenten zur verfügung stellen, und das sind die allermeisten.
Also ersten Parameter übergibst du dein Tabellen/Query Objekt und als zeiten den Filter String.

Gruß
Klabautermann