Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Umlaute bei D7 ADO/Access (https://www.delphipraxis.net/206105-umlaute-bei-d7-ado-access.html)

cckLoud 19. Nov 2020 13:07

Datenbank: access • Version: ??? • Zugriff über: jetengine

Umlaute bei D7 ADO/Access
 
Ich bin neu hier - deshalb erst mal ein Hallo an das Forum.

Ganz unbedarft in Delphi bin ich nicht, früher war ich mal unter meinem Usernamen cckLoud im Delphitreff aktiv, vielleicht erinnert sich ja jemand ...

Aber nun zum Problem!
Ich habe so eine kleine Branchensoftware (ca. 540000 loc) in D7 geschrieben. Die läuft auch einwandfrei, jedenfalls bis gestern ein neuer Kunde das Produkt getestet hat - auf einem Surface-Rechner mit WIN 10.

Das Problem ist, dass

1. alle Umlaute in den Captions (Buttons, Labels) so UTF8-Mässig angezeigt werden (die fix über die IDE
vorgegeben sind)
2. wenn ich per ADO/SQL auf die DB zugreifen will, werden Teile des SQL-Strings entsprechend obiger
Weise verhachstückt. Da gibt es beim Insert into eine Fehlermeldung "unbekannter Feldname
'strai??e'" wobei das "ai??" für seltsame Zeichen steht, die ich (??) nicht auf der Tastatur habe.
in dem SQL-String steht hier eindeutig "Straße"

3. wenn ich Strings aus der Datenbank (ACCESS/JetEngine über ADO)und ausgebe (zB in ein Edit-Feld),
dann passiert das Selbe wie bei den Captions

Das ganze hat zweifellos was mit UTF zu tun. Nur bei allen anderen Kunden passiert das nicht. Wie kann zB das mit der IDE als Ansi abgelegt (und als Resource gespeichert). Ich denke, das hat mit einer Win-Einstellung zu tun, die bei Dateizugriffen einen UTF-Wandler zwischenschaltet. Ich habe mich jetzt seit 4 Tagen im INet rumgetrieben, aber nix brauchbares gefunden. Vielleicht kennt ja jemand von euch das Problem und weiss Abhilfe?

Bernhard Geyer 19. Nov 2020 13:52

AW: Umlaute bei D7 ADO/Access
 
Wenn du unter D7 mit ADO/dbGo darauf zugreifst dürfte da nix von Windows dazwischen funken.
Oder nutzt du hier dbExpress?

cckLoud 19. Nov 2020 14:33

AW: Umlaute bei D7 ADO/Access
 
Nein, ich nutze ADO. Und dass da Win zwischenfunkt, hätte ich auch nicht gedacht.

Aber danach sieht es halt aus. Ich würde das bei 2 und 3 im Bereich des COM-Marshallers ansiedeln, da ich korrekte SQL abliefere, und bei der JET-Enging offensichtlich Müll ankommt.

Und auch bei 1: soweit mir bekannt, speichert die Maskendefinitionen als Resourcen, und ds Lesen derselben erfolgt über ein WIN-Funktion... Wie sonst könnte auch in D7 "intern" UTFirgendwas zun Zug kommen?

tggmx 21. Nov 2020 09:21

AW: Umlaute bei D7 ADO/Access
 
Liste der Anhänge anzeigen (Anzahl: 1)
Es gibt in Windows 10 mittlerweile eine nette kleine gut versteckte Checkbox in den Regions-Einstellungen ("Beta: Unicode UTF-8 Unterstützung...") die wahrscheinlich nicht ganz ohne Hintergrund mit "Beta" bezeichnet ist. Prüfe mal ob diese Option bei deinem Kunden aktiv ist. Abschalten sollte die Lösung für dein Problem sein.

cckLoud 21. Nov 2020 10:01

AW: Umlaute bei D7 ADO/Access
 
Danke für den Tip, hört sich gut an. Werde ich auprobieren (lassen), geht aber natürlich heute nicht - Wochenende!

Ich geb aber Bescheid!

Bernhard Geyer 21. Nov 2020 10:39

AW: Umlaute bei D7 ADO/Access
 
Zitat:

Zitat von cckLoud (Beitrag 1477548)
Wie sonst könnte auch in D7 "intern" UTFirgendwas zun Zug kommen?

Es gibt doch diese ein Unit die verspricht die alten Delphi-Version mit Unicode-Support aufzurüsten.
hast du evtl. diese im Einsatz?

Bernhard Geyer 21. Nov 2020 10:40

AW: Umlaute bei D7 ADO/Access
 
Zitat:

Zitat von tggmx (Beitrag 1477681)
Es gibt in Windows 10 mittlerweile eine nette kleine gut versteckte Checkbox in den Regions-Einstellungen ("Beta: Unicode UTF-8 Unterstützung...") die wahrscheinlich nicht ganz ohne Hintergrund mit "Beta" bezeichnet ist. Prüfe mal ob diese Option bei deinem Kunden aktiv ist. Abschalten sollte die Lösung für dein Problem sein.

Wieso baut man in einem OS das seit über 20 Jahren eine auf (inital UCS2, ab Wk2 UTF-16-Basiert) sowas noch ein?
Das verursacht doch mehr Problem als es löst?

cckLoud 21. Nov 2020 11:00

AW: Umlaute bei D7 ADO/Access
 
Weil es abertausende Anwendungen gibt, die mit Ansi laufen?

Klar, man könnte natürlich auf zB Rio umsteigen, aber so einfach ist das nicht, wenn das auch immer wieder kolportiert wird.

Auch wir haben uns Rio besorgt und die Umstellung war auch tatsächlich in 3 Tagen durch. Sollte man meinen, denn im Detail war es nicht so, wie man es erwartete - zB bei Grids gibt es massive Probleme, die werden nicht korrekt dargestellt und müssen fast alle nachgearbeitet werden. Und das dauert, schliesslich hat das Programm so ungefähr 500 Masken und Frames. Und dann muss man ausgiebig testen, sonst rassten die Kunden aus. Und die laufenden Weiterentwicklungen nicht vergessen!
Also bei uns dauert das noch mindestens 3/4 Jahre, bis wie das Programm launchen können. Und so lange sind wir froh darüber, dass es einen Kompatibilitätsmodus gibt, auch wenn die IDE des Öfteren mal win10 freezed!

Delphi.Narium 21. Nov 2020 11:24

AW: Umlaute bei D7 ADO/Access
 
Zitat:

Zitat von tggmx (Beitrag 1477681)
Es gibt in Windows 10 mittlerweile eine nette kleine gut versteckte Checkbox in den Regions-Einstellungen ("Beta: Unicode UTF-8 Unterstützung...") die wahrscheinlich nicht ganz ohne Hintergrund mit "Beta" bezeichnet ist. Prüfe mal ob diese Option bei deinem Kunden aktiv ist. Abschalten sollte die Lösung für dein Problem sein.

Die Einstellung ist in der Registry zu finden, siehe u. a. hier: https://administrator.de/forum/gebie...en-520319.html
Damit wäre es dann möglich den Wert abzufragen und wenn er gesetzt sein sollte, den Anwender darauf hinzuweisen, dass mit dieser Einstellung ein korrekter Programmbetrieb nicht möglich ist. (Sofern sich herausstellen sollte, dass dies die Fehlerursache ist.)

Bernhard Geyer 21. Nov 2020 11:52

AW: Umlaute bei D7 ADO/Access
 
Zitat:

Zitat von cckLoud (Beitrag 1477687)
Weil es abertausende Anwendungen gibt, die mit Ansi laufen?

Und da hilft eine Option die dann an irgendwelchen stellen statt Ansi-String UTF8-Codierung liefert?

Zitat:

Zitat von cckLoud (Beitrag 1477687)
Klar, man könnte natürlich auf zB Rio umsteigen, aber so einfach ist das nicht, wenn das auch immer wieder kolportiert wird.

Klar kostet es zeit umzustellen. Aber besser heute als morgen.
Wir konnten auch erst zu XE6-Zeiten umstellen und sind mit den nächsten Sprung bei 10.2.
Im nachhinein betrachtet hätte man die Umstellung noch früher durchziehen müssen um nach der abkündigung der Win9x/ME-Schiene nicht mit einer Unproduktiveren IDE arbeiten zu müssen.

Zitat:

Zitat von cckLoud (Beitrag 1477687)
Auch wir haben uns Rio besorgt und die Umstellung war auch tatsächlich in 3 Tagen durch. Sollte man meinen, denn im Detail war es nicht so, wie man es erwartete

Eine Umstellung hängt immer davon ab wie man bisher die VCL verwendet hatte.
Bei uns war es "einfacher", da wir schon seit Jahren (mit D6) Unicode unterstütz hatten und vieles mit einem eigenen String-Typ (MyType = WideString) gearbeitet hatten, so das wir schon viele Stellen "entschärft" hatten. Auch hat unsere Bibliothek (ElPack) uns hier nur realtive "einfache" Hürden beim Update auf aktueller XE6-Version steine in den Weg gelegt.

Zitat:

Zitat von cckLoud (Beitrag 1477687)
Und dann muss man ausgiebig testen, sonst rassten die Kunden aus. Und die laufenden Weiterentwicklungen nicht vergessen!

Kenne ich. Aber vor allem das Theme "Weiterentwicklung" geht mit einer modernen Version schneller. An manchen stellen um Welten schneller, da man statt 3th-Party-Kompos auszusuchen einfach das nimmt was dabei ist.

Zitat:

Zitat von cckLoud (Beitrag 1477687)
Also bei uns dauert das noch mindestens 3/4 Jahre, bis wie das Programm launchen können.

Immerhin seit ihr darüber. Und die 3/4 Jahr geht auch vorrüber. Und dann endlich IDE-Sprachfeature "aus dem Vollen schöpfen" können :-)

Zitat:

Zitat von cckLoud (Beitrag 1477687)
Und so lange sind wir froh darüber, dass es einen Kompatibilitätsmodus gibt, auch wenn die IDE des Öfteren mal win10 freezed!

Schaut eher nach einen Win10 (Grafik-treiber) aus.
Das die IDE-Freezed kann passieren. Aber wenn das OS auch mit eingefrohren wird liegt noch woanders ein Problem vor.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 Uhr.
Seite 1 von 2  1 2      

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