![]() |
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.
|
Re: mehrere Optionen Filter
Kleiner Tipp, ohne es getestet zu haben: (nochmal)
Setz die einzelnen Abfragen doch mal in Klammern..
SQL-Code:
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') + '))'; |
Re: mehrere Optionen Filter
Ist das Access oder MS SQL? Die Syntax lässt eher auf Access schließen, da dann lieber eine Klammerung mehr verwenden :stupid:
|
Re: mehrere Optionen Filter
-ist MSSQL2000
- mit Klammern klappt es leider auch noch nicht -im SQL-Analyzer funktioniert folgendes Statement problemlos
SQL-Code:
- Aber letzteres eben nicht als Filter für mein Programm, ich wollt aber den SQL-Text meines AdoQuerys nicht ändern, sondern eben mit der Filter-Optione arbeiten, sowas versteh ich nicht...
USE meineDB
SELECT * FROM meineTab WHERE (Titel like 'abc' OR wer like 'AQ' OR was like 'aq') AND (wann>='01.01.2007 00:00:00' AND wann<='04.09.2008 00:00:00') GO |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:42 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