Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Query Filter setzen für ein DBGrid (https://www.delphipraxis.net/188464-query-filter-setzen-fuer-ein-dbgrid.html)

strom 6. Mär 2016 19:14

Datenbank: mySQL • Version: mariaDB • Zugriff über: myDAC

Query Filter setzen für ein DBGrid
 
Habe ich auch die Möglichkeit zwei oder drei Stichworte zu filtern?

Delphi-Quellcode:
 EventQuery.Filtered := false;
   EventQuery.Filter := ('STATUS="Textfile"' AND 'STATUS="System"'); // Fehler
   EventQuery.Filtered := true;

mkinzler 6. Mär 2016 19:25

AW: Filter
 
Man muss mehrere Bedingungen Klammern:

Delphi-Quellcode:
EventQuery.Filter := '(STATUS="Textfile") AND (STATUS="System")';

Luckie 6. Mär 2016 20:13

AW: Filter
 
Bitte gib deinem Beitrag einen aussagekräftigen Titel. "Filter" ist doch mehr als allgemein. Damit kann man nicht viel anfangen.

p80286 6. Mär 2016 22:40

AW: Filter
 
AND ??
doch wohl eher OR.

Gruß
K-H

nahpets 7. Mär 2016 08:18

AW: Filter
 
Würde das eher so implementieren:
Delphi-Quellcode:
  EventQuery.Filtered := false;
  EventQuery.Filter := Format('STATUS=%s or STATUS=%s)',[QuotedStr('Textfile'),QuotedStr('System')]);
  EventQuery.Filtered := true;

Sir Rufo 7. Mär 2016 09:22

AW: Query Filter setzen für ein DBGrid
 
Ich würde hier einfach mit dem Delphi-Referenz durchsuchenTDataSet.OnFilterRecord Event arbeiten.

strom 7. Mär 2016 10:58

AW: Query Filter setzen für ein DBGrid
 
So geht es!

Delphi-Quellcode:
   EventQuery.Filtered := false;
   EventQuery.Filter := 'STATUS="System"';
   EventQuery.Filtered := true;

nahpets 7. Mär 2016 11:54

AW: Query Filter setzen für ein DBGrid
 
Das ist aber dann doch nur ein Stichwort.

Statt dem ursprünglichen
Delphi-Quellcode:
EventQuery.Filtered := false;
EventQuery.Filter := ('STATUS="Textfile"' AND 'STATUS="System"'); // Fehler
EventQuery.Filtered := true;
ginge auch dashier:
Delphi-Quellcode:
EventQuery.Filtered := false;
EventQuery.Filter := ('STATUS="Textfile" or STATUS="System"');
EventQuery.Filtered := true;
In ursprünglichen Quelltext waren vor und hinter dem AND die ' zuviel und statt des AND müsste OR genutzt werden, denn die Wahrscheinlichkeit, dass STATUS gleich Textfile und gleichzeitig gleich System ist, tendiert eher gegen 0 ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:12 Uhr.

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