Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Umlaute in UTF8: Äthiopien statt Äthiopien (https://www.delphipraxis.net/168946-umlaute-utf8-%E3%84thiopien-statt-aethiopien.html)

Perlsau 20. Jun 2012 16:25

AW: Umlaute in UTF8: Äthiopien statt Äthiopien
 
Zitat:

Zitat von blackfin (Beitrag 1171801)
Evtl könntest du es mal zeitweise mit den ZEOS Komponenten versuchen, die sind ja (AFAIK immer noch) kostenlos.
Später, wenn du dann mal Geld für Komponenten übrig hast, kannst du dann evtl. auf UNIDAC umstellen, meines Erachtens die besten Datenbank-Komponenten, zumindest hatte ich noch nie Probleme mit denen und finde das Handling sehr elegant.
Ich hatte damals von ZEOS 7 auf UniDAC umgestellt, die Umstellung war sehr einfach und in kurzer Zeit erledigt.

P.S.
Kann aber sein, dass mein Tipp Mist ist und du dir mit den Zeos-Komponenten noch mehr Ärger einhandelst...habe mit Ihnen schon lange nicht mehr gearbeitet.

Zeos hab ich in meinem Radstudio ebenfalls installiert, ist aber wesentlich langsamer als FibPlus und viel umständlicher zu handhaben von wegen Provider und ClientDataset usw.

Was mir noch auffällt: Wenn ich auf ISO8859_1 umstelle, kann ich in den Tabellen-Lookup-Feldern locker nach dem richtigen Eintrag suchen mit Eingabe der ersten paar Buchstaben, wie man das eben so von einer Lookup-Komponente kennt. Habe ich dagegen auf UTF8 gestellt, geht das nicht mehr ... die Lookup-Komponente in der Tabelle reagiert nicht auf meine Eingaben, nur auf Cursertasten und Enter ...

Perlsau 20. Jun 2012 20:56

AW: Umlaute in UTF8: Äthiopien statt Äthiopien
 
So, jetzt hab ich eine Lösung entwickelt, ohne vorerst auf meine Zugriffskomponenten verzichten zu müssen:

In der DB hab ich ein View erstellt, das ich in Delphi mit einem Dataset verbinde. Daneben läuft natürlich noch ein Dataset mit der "echten" Tabelle. Beide Tabellen zeigen stets denselben Datensatz. Will ich die Währungs-Spalte des angezeigten Landes ändern, verwende ich dazu eine TDBLookupComboBox, die bei Enter die "echte" Tabelle Währung in den Editmodus versetzt und bei Exit postet und mit demselben Atemzug das View-Dataset refresht bzw. schließt und wieder öffnet. Die Darstellung in im DB-Grid ist jetzt korrekt.

Perlsau 23. Jun 2012 06:29

Nachtrag
 
Zitat:

Zitat von Perlsau (Beitrag 1171839)
Will ich die Währungs-Spalte des angezeigten Landes ändern, verwende ich dazu eine TDBLookupComboBox, die bei Enter die "echte" Tabelle Währung in den Editmodus versetzt und bei Exit postet und mit demselben Atemzug das View-Dataset refresht bzw. schließt und wieder öffnet. Die Darstellung in im DB-Grid ist jetzt korrekt.

Nachtrag

Die Darstellung im DB-Grid ist zwar korrekt, jedoch warten meine alten FibPlus-Kompos mit einem weiteren Fehler auf: Die Einträge in der TDBLookupComboBox lassen sich nicht via Anfangsbuchstaben auswählen, wenn die Tabellen in der DB mit UTF8 kodiert sind.

Workaround: Beim Programmstart werden die Felder der benötigten Tabellen in normale Commboboxen eingelesen. Beim der Anwendung dieser Comboboxen ist aber auf einiges zu achten:

1. Ist die Indexierung (PK = PrimaryKey) der entsprechenden Tabelle durchgehend fortlaufend und gleichzeitig sichergestellt, daß keine Einträge gelöscht werden und somit später Index-Nummern fehlen, kann der ItemIndex der Combobox als Referenz auf den Index der Tabelle verwendet werden. Dabei ist aber zu beachten, daß eine Tabellen-Indexierung nicht immmer mit 0 beginnt wie der ItemIndex einer TStringList.

2. Trifft obige Voraussetzung nicht zu, muß der mit dem gewählten Combobox-Eintrag assoziierte Tabelleneintrag mittels Locate gesucht werden.

Immerhin, so funktioniert es erstmal.

Fazit: Man muß nicht immer Geld für Komponenten ausgeben, wenn man sich auch anders zu helfen weiß ... :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 Uhr.
Seite 3 von 3     123   

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