Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi mehrere Optionen Filter (https://www.delphipraxis.net/120007-mehrere-optionen-filter.html)

Tim Henford 4. Sep 2008 11:29

Datenbank: MS SQL 2k • Zugriff über: ADO

mehrere Optionen Filter
 
Hallo,

folgender Filter funktioniert einwandfrei:

Delphi-Quellcode:
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;
aber

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;
Die Argumente sind vom falschen Typ, liegen außerhalb des Gültigkeitsbereichs....

Woran kann das liegen? Irgendwie hängt das wohl mit dem Datum zusammen und der Anzahl Werte
VG Tim

DeddyH 4. Sep 2008 12:16

Re: mehrere Optionen Filter
 
Parametrisiere die Abfrage mal. Und ist wirklich "*" die Wildcard und nicht "%"?

Tim Henford 4. Sep 2008 12:24

Re: mehrere Optionen Filter
 
Was meinst du mit Parametrisieren?

DeddyH 4. Sep 2008 12:25

Re: mehrere Optionen Filter
 
Hier im Forum suchenSQL-Parameter

Tim Henford 4. Sep 2008 12:51

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..

DeddyH 4. Sep 2008 12:54

Re: mehrere Optionen Filter
 
Lass Dir mal den Filterstring ausgeben, evtl. sieht man da mehr.

Tim Henford 4. Sep 2008 13:08

Re: mehrere Optionen Filter
 
ok, danke für die Hilfe
Scheinbar liegt der Fehler beim OR:

Delphi-Quellcode:
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;
funktioniert nicht


Delphi-Quellcode:
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;
funktioniert. Aber warum? Kann man das nicht so definieren?

DeddyH 4. Sep 2008 13:15

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;

Tim Henford 4. Sep 2008 13:30

Re: mehrere Optionen Filter
 
ok letzteres geht, aber wenn ich jetzt wieder folgendes mache:

Delphi-Quellcode:
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') + ')';
geht es wieder nicht.
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...

DeddyH 4. Sep 2008 13:45

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 04:36 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz