Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Probleme mit TClientDataSet (https://www.delphipraxis.net/129991-probleme-mit-tclientdataset.html)

zeras 1. Mär 2009 13:07

Datenbank: TClientDataSet • Zugriff über: ??

Probleme mit TClientDataSet
 
Hallo,

ich möchte die Komponente "TClientDataSet" nutzen. Das scheint auch teilweise zu gehen, wenn ich aber einen Teilstring finden will, der innerhalb des Feldes ist, bekomme ich keine Daten zurück.
Beispiel: Feld = 'Das ist ein Test'
Suchmaske = 'ein'
Dann bekomme ich immer eine leere Menge zurück. Ich habe das auch schon mit 'ein*' und '*ein' und '*ein*' versucht, aber leider erfolglos. Da meine Daten nur lokal sind auch nicht die Riesenmengen, wollte ich die Komponente TClientDataSet nutzen und keine "Riesendatenbank" extra installieren und anlegen.


Delphi-Quellcode:

CDS.Filtered:=False;

   CDS.FilterOptions := [foCaseInsensitive];  //Groß/Kleinschreibung ignorieren
   CDS.Filter:='';


   s:=EName.Text;
   if s<>'' then begin
   CDS.Filter:='['+CDS.FieldDefs[0].Name+'] = ' + QuotedStr(s+'*');
   end;

   s:=EIdent.Text;
   if s<>'' then begin
   CDS.Filter:='['+CDS.FieldDefs[1].Name+'] = ' + QuotedStr(s+'*');
   end;


   ShowMessage(CDS.Filter);

   CDS.Filtered:=true;

DIET3RIX 1. Mär 2009 20:43

Re: Probleme mit TClientDataSet
 
Verstehe nicht wirklich wo dein Problem liegt, deswegen kann ich nur vermuten, dass du versuchst ein Query aufbereiten willst.
Versuch statt dem Sternchen '*', ein Prozentzeichen '%' zu nehmen ;-)

Wenn du aber schon in dem Ergebnis nach dem Zeichen suchen willst, dann ggfs. mit POS() arbeiten :)

alzaimar 2. Mär 2009 06:27

Re: Probleme mit TClientDataSet
 
Ich kenne die genaue Funktion von '=' in Verbindung mit dem '*' nicht. Aber ich würde die OH zu Hilfe nehmen, und mal schauen, was die 'Filter'-Eigenschaft noch so alles kann.

Vielleicht bringt das ja etwas:
Delphi-Quellcode:
ClientDataset.Filter := Format('%s LIKE %s',[ClientDataset.Fields[0].Name, QuotedStr('%'+edit1.Text+'%')]);
@DIET3RIX: Die OH zu TClientDataset.Filter erwähnt aber das Sternchen in Verbindung mit '='.

zeras 2. Mär 2009 18:03

Re: Probleme mit TClientDataSet
 
Danke für die Beispiele.
In der Hilfe stand nur was vom einem Stern, der dann auch Teilstrings suchen kann.
Nun habe ich "like" probiert und sieheda, es geht.

Vielen Dank nochmals.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:37 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