![]() |
Datenbank: MS SQL 2k • Zugriff über: ADO
mehrere Optionen Filter
Hallo,
folgender Filter funktioniert einwandfrei:
Delphi-Quellcode:
aber
Query.Filtered:= false;
Query.Filter:= 'Titel like ''*'+Eingabe.Text+'*'' AND wann>='+QuotedStr('01.01.2007 00:00:00')+ ' AND wann<='+QuotedStr('01.01.2008 00:00:00'); Query.Filtered:= true;
Delphi-Quellcode:
Die Argumente sind vom falschen Typ, liegen außerhalb des Gültigkeitsbereichs....
Query.Filtered:= false;
Query.Filter:= 'Titel like ''*'+Eingabe.Text+'*'' OR wer like ''*'+wer.Text+'*'' AND wann>='+QuotedStr('01.01.2007 00:00:00')+ ' AND wann<='+QuotedStr('01.01.2008 00:00:00'); Query.Filtered:= true; Woran kann das liegen? Irgendwie hängt das wohl mit dem Datum zusammen und der Anzahl Werte VG Tim |
Re: mehrere Optionen Filter
Parametrisiere die Abfrage mal. Und ist wirklich "*" die Wildcard und nicht "%"?
|
Re: mehrere Optionen Filter
Was meinst du mit Parametrisieren?
|
Re: mehrere Optionen Filter
|
Re: mehrere Optionen Filter
Danke, verstehe ich aber immer noch nicht ganz, wie mir das für den Filter hilft.
Das mit dem Sternchen funktioniert eigentlich wie gewollt... Aber irgendwie eben 2 Parameter mit Datum nicht, wie gesagt mit einem scheint es zu gehen.. |
Re: mehrere Optionen Filter
Lass Dir mal den Filterstring ausgeben, evtl. sieht man da mehr.
|
Re: mehrere Optionen Filter
ok, danke für die Hilfe
Scheinbar liegt der Fehler beim OR:
Delphi-Quellcode:
funktioniert nicht
Query.Filtered:= false;
Query.Filter:= 'Titel like ''*'+Eingabe.Text+'*'' [b]OR[/b] wer like ''*'+wer.Text+'*'' AND wann>='+QuotedStr('01.01.2007 00:00:00')+ ' AND wann<='+QuotedStr('01.01.2008 00:00:00'); Query.Filtered:= true;
Delphi-Quellcode:
funktioniert. Aber warum? Kann man das nicht so definieren?
Query.Filtered:= false;
Query.Filter:= 'Titel like ''*'+Eingabe.Text+'*'' [b]AND[/b] wer like ''*'+wer.Text+'*'' AND wann>='+QuotedStr('01.01.2007 00:00:00')+ ' AND wann<='+QuotedStr('01.01.2008 00:00:00'); Query.Filtered:= true; |
Re: mehrere Optionen Filter
Setz mal testhalber Klammern.
Delphi-Quellcode:
Query.Filtered:= false;
Query.Filter:= 'Titel like ''*'+Eingabe.Text+'*'' OR (wer like ''*'+wer.Text+'*'' AND wann>='+QuotedStr('01.01.2007 00:00:00')+ ' AND wann<='+QuotedStr('01.01.2008 00:00:00') + ')'; Query.Filtered:= true; |
Re: mehrere Optionen Filter
ok letzteres geht, aber wenn ich jetzt wieder folgendes mache:
Delphi-Quellcode:
geht es wieder nicht.
Query.Filter:= '(Titel like ''*'+Eingabe.Text+'*'' OR wer like ''*'+Eingabe.Text+
'*'' OR wie like ''*'+Eingabe.Text+ '*'' OR was like ''*'+Eingabe.Text+ '*'') AND (wann>='+QuotedStr('01.01.2007 00:00:00')+ ' AND wann<='+QuotedStr('01.01.2008 00:00:00') + ')'; ich möchte einfach das in der DB in den Feldern Titel, wer, wie, was nach dem Suchkriterium aus Eingabe.text gesucht wird und das Datum in dem angegebenen Zeitraum liegt... |
Re: mehrere Optionen Filter
Ich empfehle Dir, die Statements mal mit einem SQL-Editor zu testen. Wenn sie funktionieren, kannst Du sie dann in Delphi einbauen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz