Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TADOConnection falsche Umlaute (https://www.delphipraxis.net/155365-tadoconnection-falsche-umlaute.html)

Roaster 20. Okt 2010 13:50

Datenbank: Adabas D • Version: 10,05 • Zugriff über: ODBC

TADOConnection falsche Umlaute
 
Hi,

ich benutze zusammen mit D2009, eine TADOConnection um Daten aus einer Adabas D Datenbank (ist shcon ein wenig betagt), abzufragen. Nur leider kommen die dt. Umlaute nicht korrekt im DB-Grid an. Es erscheinen stattdessen nur Rechtecke.

Der Connection-String lautet:
Code:
Provider=MSDASQL.1;Persist Security Info=False;User ID=USERNAME;Data Source=SRC;Mode=Read;Extended Properties="DSN=SRC;UID=USERNAME;SERVERDB=KERVIS;SERVERNODE=KIRK;"
Kann ich der Connection irgendwo mitteilen, welche Charset es verwenden soll?

Ich kann, bvor ich bspw. Excel aufrufe, einen SET DBCHARSET=XXXX absenden, in einer Batch-Datei, und anschließend dann Excel oder Access starten, um dort die korrekten Umlaut ebenfalls zu erhalten. nur leider ist dies in der Delphi-Anwendung nicht möglich, bzw. ich möchte es ganz einfach nicht auf diese Weise machen.

Ist es also möglich, der ADO-Geschichte so etwas beizubringen?

shmia 20. Okt 2010 15:15

AW: TADOConnection falsche Umlaute
 
Also in der ADO-Connection kannst du beim Zugriff über ODBC-Treiber keinen Zeichensatz angeben.
Du könntest nun beim ODBC-Treiber schauen, ob es dort Einstellungen zum Zeichensatz gibt.
Ich nehme mal an du hast eine System-DSN in den ODBC-Datenquellen eingerichtet.
Dort wäre die richtige Stelle zum Eingriff.

Als schnelle Lösung könntest du auch:
Delphi-Quellcode:
ADOConnection1.ConnectionString := '........';
ADOConnection1.Connected := True;
ADOConnection1.Execute('SET DBCHARSET=XXXX'); // Zeichensatz einstellen
Das wäre eine Zeile die dann leider hartcodiert im Programm wäre, aber der Aufwand ist gering.

Bernhard Geyer 20. Okt 2010 16:23

AW: TADOConnection falsche Umlaute
 
Zitat:

Zitat von Roaster (Beitrag 1056718)
Nur leider kommen die dt. Umlaute nicht korrekt im DB-Grid an. Es erscheinen stattdessen nur Rechtecke.

Wie ist der Hex-Code des Rechtecks? Ich könnte mir vostellen das du hier eine OEM/DOS-Charset vor dir hast.


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