![]() |
Datenbank: Interbase • Version: 7.5 • Zugriff über: ADO
ClientDataset Filtern
Ich möchte gerne in einem ClientDataSet mit "Filter" Datensätze mit einer bestimmten
Zeichenkette an einer beliebigen Stelle filtern, also analog zu
SQL-Code:
bisher konnte ich aber nur nach Zeichenketten, die am Anfang stehen filtern
SELECT * FROM [tabelle]
WHERE [spalte] LIKE '%[text]%'
Delphi-Quellcode:
mit CDS.Filter := '[spalte]=''[text]*'''; CDS.Filtered := true;
Delphi-Quellcode:
klappt es leider nicht.CDS.Filter := '[spalte]=''*[text]*'''; CDS.Filtered := true; Gibt es da eine Lösung? |
Re: ClientDataset Filtern
Hi Alexander,
probiers doch mal so:
SQL-Code:
Spalte like '%SUCHMICH%'
|
Re: ClientDataset Filtern
Zitat:
SQL-Code:
Spalte like 'SUCHMICH%'
|
Re: ClientDataset Filtern
Spitze! Klappt alles. :lol:
Vielen dank. War mir nähmlich nicht sicher ob ich beim Filtern auch mit 'LIKE' arbeiten kann. |
Re: ClientDataset Filtern
wie kann man dies bei einem Datasetfilter erreichen der aus einer xml ließt ?
also My Base - habs bisher so
Delphi-Quellcode:
wenn ich das aber auf like ändere brint er mir ne fehlermeldung
database.ClientDataSet1.Filter:='ausgabename=''searchfield.Text*''';
weil er dann ni checkt in welcher spalte er suchen soll |
Re: ClientDataset Filtern
push :duck:
|
Re: ClientDataset Filtern
Du musst den Filter-String zusammenbauen:
Delphi-Quellcode:
mr2
database.ClientDataSet1.Filtered := False;
database.ClientDataSet1.Filter := Format('ausgabename = %s', [QuotedStr(searchfield.Text + '*')]); database.ClientDataSet1.Filtered := True; |
Re: ClientDataset Filtern
das klappt auf jeden fall schon mal gut mein prob is aber immer
noch wie ich es hinbekomme dass er nicht immer von den ersten buchstaben ausgeht sondern wenn ich ein wort "banane" habe (z.b ^^) und dann "ane" er das trotzdem dalässt und nicht wegfiltert |
Re: ClientDataset Filtern
dann musst Du like verwenden:
Delphi-Quellcode:
mr2
database.ClientDataSet1.Filtered := False;
database.ClientDataSet1.Filter := Format('ausgabename like %s', [QuotedStr('%' + searchfield.Text + '%')]); database.ClientDataSet1.Filtered := True; |
Re: ClientDataset Filtern
ah ja genau das wars super danke sehr
:bounce1: :bouncing4: :bounce1: :bouncing4: ..................................... |
Re: ClientDataset Filtern
Zitat:
Wie kann ich jetzt noch einen oder zwei..drei.. weitere Filter hinzufügen.
Delphi-Quellcode:
Funktioniert bei mir nicht, filtert immer nur nach einem Filter. :wall:
if RadioButton1.checked =true then
begin database.ClientDataSet1.Filtered := False; database.ClientDataSet1.Filter := 'Feld1=''12345'''; database.ClientDataSet1.Filtered := True; end; if RadioButton2.checked =true then begin database.ClientDataSet1.Filtered := False; database.ClientDataSet1.Filter := 'Feld2=''6789'''; database.ClientDataSet1.Filtered := True; end; |
Re: ClientDataset Filtern
Hallo,
Ich bin soeben auch an dem Filter Thema dran aber mit Boolean ( Bit ) Werte im SQL Server. Ich habe es so gelöst.
Delphi-Quellcode:
case Checkbox86.State of
cbChecked: Option_GSM := 'not (GSM = 0)'; cbUnChecked: Option_GSM := '(GSM = 0)'; end; Aber nun meine Frage: Ich habe alles Probiert um einen True Wert raus zu Filtern. Mit -1 1 und 2 und auch als String mit 'Wahr' und 'true' ohne Erfolg. Nur die not 0 Methode ging . Kann mir da jemand Klarheit geben? Danke |
Re: ClientDataset Filtern
Hallo,
ist zwar schon 'ne Weile her aber... Zitat:
Delphi-Quellcode:
so könnte es gehen:
if RadioButton1.checked =true then
begin database.ClientDataSet1.Filtered := False; database.ClientDataSet1.Filter := 'Feld1=''12345'''; database.ClientDataSet1.Filtered := True; end; if RadioButton2.checked =true then begin database.ClientDataSet1.Filtered := False; database.ClientDataSet1.Filter := 'Feld2=''6789'''; database.ClientDataSet1.Filtered := True; end;
Delphi-Quellcode:
Var
sFilter : String; ... database.ClientDataSet1.Filtered := False; if RadioButton1.checked then begin sFilter := 'Feld1=''12345'''; end; if RadioButton2.checked then begin if sFilter <> '' then sFilter := sFilter + ' or '; sFilter := sFilter + 'Feld2=''6789'''; end; if sFilter <> '' then begin database.ClientDataSet1.Filter := sFilter; database.ClientDataSet1.Filtered := True; end; |
Re: ClientDataset Filtern
Hallo,
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 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 by Thomas Breitkreuz