![]() |
Datenbank: TClientDataSet • Version: 1 • Zugriff über: TClientDataSet
TClientDataSet: foCaseInsensitive funzt nicht so richtig mit Umlauten
Guten Abend,
wenn ich ein TClientDataSet mit foCaseInsensitive filtere funzt das meistens. Jetzt habe ich ein Beispiel, da klappt es nicht mehr und ich bin etwas ratlos. Kann das jemand nachvollziehen? Bei der aktuellen Auswahl geben beide Filter dasselbe Ergebnis zurück. Wenn man die auskommentierte Variante mit Umlauten verwendet, funktionieren nur noch der 1. Filter mit identischer Groß-/Kleinschreibung.
Delphi-Quellcode:
procedure TFMain.Button2Click(Sender: TObject);
var ClientDataSet1: TClientDataSet; Feld1: TWideStringField; R1,R2,R3,R4: Integer; begin {ClientDataSet + Field erzeugen} ClientDataSet1:=TClientDataSet.Create(self); Feld1:=TWideStringField.Create(ClientDataSet1); Feld1.Name:='Field1'; Feld1.FieldName:='Name1'; Feld1.DataSet:=ClientdataSet1; {2 Datenzeilen anfügen} ClientDataSet1.CreateDataSet; ClientDataSet1.Append; ClientDataSet1.FieldByName('Name1').Text:='Marc Öberer'; ClientDataSet1.Post; ClientDataSet1.Append; ClientDataSet1.FieldByName('Name1').Text:='Marc Oeberer'; ClientDataSet1.Post; {Filter1 mit gleicher Groß-/Kleinschreibung} ClientDataSet1.FilterOptions:=[foCaseInsensitive]; //ClientDataSet1.Filter:='Name1 LIKE ''%Marc Öb%'''; ClientDataSet1.Filter:='Name1 LIKE ''%Marc Oeb%'''; ClientDataSet1.Filtered:=true; R1:=ClientDataSet1.RecordCount; {Filter2 mit Kleinschreibung} ClientDataSet1.Filtered:=false; //ClientDataSet1.Filter:='Name1 LIKE ''%marc öb%'''; ClientDataSet1.Filter:='Name1 LIKE ''%marc oeb%'''; ClientDataSet1.Filtered:=true; R2:=ClientDataSet1.RecordCount; {Ergebnis} Showmessage('Filter1: '+R1.ToString+#13#10+'Filter2: '+R2.ToString); end; |
AW: TClientDataSet: foCaseInsensitive funzt nicht so richtig mit Umlauten
Ich schätze Mal da wird intern ein LowerCase anstatt AnsiLowerCase verwendet, was dann bei Umlauten etc. nicht funktioniert.
Probiers Mal so:
Delphi-Quellcode:
ClientDataSet1.FilterOptions:=[]
ClientDataSet1.Filter:='Lower(Name1) LIKE ''%marc öb%'''; |
AW: TClientDataSet: foCaseInsensitive funzt nicht so richtig mit Umlauten
Das hat uU nicht nur mit dem CDS zu tun. Wo kommen die Daten denn her + wie sind die dort kodiert?
|
AW: TClientDataSet: foCaseInsensitive funzt nicht so richtig mit Umlauten
Zitat:
|
AW: TClientDataSet: foCaseInsensitive funzt nicht so richtig mit Umlauten
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:49 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