AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Umlaute aus dBase-Datei
Thema durchsuchen
Ansicht
Themen-Optionen

Umlaute aus dBase-Datei

Ein Thema von gpl · begonnen am 28. Jan 2010 · letzter Beitrag vom 28. Jan 2010
Antwort Antwort
Seite 1 von 2  1 2      
gpl

Registriert seit: 28. Jan 2010
Ort: Nähe Bonn
12 Beiträge
 
Delphi 11 Alexandria
 
#1

Umlaute aus dBase-Datei

  Alt 28. Jan 2010, 12:02
Datenbank: dbase • Version: 5.0 • Zugriff über: ADO
Hallo,
eigentlich sollte mein Projekt eine Kleinigkeit sein, aber machmal kommt es anders...

Also:
Gegeben ist eine dBase-Datei aus einem Fremdsystem mit Kundendaten. Mein Programm soll auf diese DB zugreifen, eine Kundenadresse aufgrund der Kundennummer heraussuchen und diese auf ein Dokument drucken. Die DB liegt übrigens im Netzwerk.
Die BDE sollte nach möglichkeit nicht benötigt werden.

Ich greife also per ADO auf die Dbase-Datei zu und kann problemlos den gewünschten Datensatz lesen und damit auch ausdrucken.

Allerdings verzweifele ich langsam an folgender Kleinigkeit:

Entwickelt wurde die App unter D2007 auf einem Vista-Rechner. Hier klappt das Programm hervorragend, inklusive dem Ausdruck auf dem Drucker, also genau so wie es sein sollte.
Beim Kunden soll die App allerdings auf einem XP-Rechner laufen. Teste ich nun mein Programm unter XP, dann läuft es ganz normal, allerdings werden hier die deutschen Umlaute nicht korrekt angezeigt. (Aus dem ü wird z.B. eine hochgestellte 3)

Seit Tagen suche ich nun eine Lösung dafür. Vermutlich liegt es an den Datenbanktreibern, die unter Vista eine andere Version haben, als unter XP.
Trotzdem muss es doch eine Möglichkeit geben, einen anderen Zeichensatz anzugeben.

In der dBase-Datei finde ich als Sprachtreiber: dBase ENU cp437

Weiß jemand, wie ich der ADOConnection den richtigen Sprachtreiber beigringen kann?

Ich habe schon mit "Locale Identifier" im ConnectionString rumprobiert, hat aber nichts gebracht. Auch andere Tipps, die ich im Internet gefunden habe, haben keine Änderung bewirkt.
Ich habe es mit dem "Microsoft OLE DB Provider for ODBC Drivers" als auch mit dem "Microsoft Jet 4.0 OLE DB Provider" probiert. Hat alles nichts gebracht.

Wie gesagt, langsam verzweifele ich. Ich habe jetzt schon mehr Zeit in das Problem gesteckt, als ich für die eigentliche Entwicklung des Programm benötigt habe.

Also: Für Vorschläge bin ich sehr dankbar!
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Umlaute aus dBase-Datei

  Alt 28. Jan 2010, 12:32
Hallo GPL,

ähnliches ist mir mit anderen Datebanken passiert. Da ich die Herumhampelei mit den CodePages satt war habe ich mir einfach eine eigene Übersetzungstabelle dazwischen geschaltet und dann war Ruhe.

ungefähr so:
Delphi-Quellcode:
var
  Transtab : array [0..255] of char;

....
  Transtab[byte('³']:='ü';
....

  if pos('³',inString)>0 then
    for i:=1 to length(inString) do
      inString[i]:=Trabstab[byte(inString[i])]
  else
    // mach nix
sollte bei AnsiStrings klappen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
gpl

Registriert seit: 28. Jan 2010
Ort: Nähe Bonn
12 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Umlaute aus dBase-Datei

  Alt 28. Jan 2010, 12:38
Hallo K-H,

sowas habe ich mir auch schon überlegt, aber da ich den Ausdruck über die Rave-Komponenten mache und diese direkt auf die SQL-Kompo zeigen, bringt mir das nichts.
Ich müsste große Teile des Projekts neu schreiben und mit irgendwelchen Zwischentabellen arbeiten.

Es muss doch irgendwie möglich sein, der ADOConnection einen korrekten Zeichensatz mitzugeben. Dann wäre mein Problem schon gelöst.

Trotzdem Danke für den Tip.

Gerd
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Umlaute aus dBase-Datei

  Alt 28. Jan 2010, 12:51
Eine andere Möglichkeit wäre der Font bzw. sein Zeichensatz, der für die Ausgabe genutzt wird.
Im Zweifelsfalle sollte man die Zeichen die durch einen Computer gehen immer als Zahlen betrachten. Die Buchstaben, die wir dann sehen, sind letztlich von der darstellenden Font/Zeichensatzkombination abhängig.

Was passiert denn wenn Du daran drehst?

Gruß
K-H

Edit:
Wenn Du einen ODBC-Treiber dazwischen hast, dann könnte man auch da den benötigten Zeichensatz(Codepage einstellen
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
gpl

Registriert seit: 28. Jan 2010
Ort: Nähe Bonn
12 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Umlaute aus dBase-Datei

  Alt 28. Jan 2010, 13:19
Danke für die schnelle Antwort!

Mit den Font-Einstellungen hat das wohl nichts zu tun, zumal es unter Vista ja läuft.

Die ADO-Komponente greift über ODBC auf die DBase-Datei zu. Ich habe in den Datenquellen ein DSN eingerichtet. Leider kann man dort keine weiteren Parameter einstellen. Also auch Sackgasse!

Auf meinem XP-Testrechner ist u.a. auch die BDE installiert. Selbst wenn ich hier die korrekten Spracheinstellungen vornehme, bringt das nichts. Allerdings musste ich, damit die ADO-Verbindung überhaupt läuft, in der Registry einstellen, dass ADO nicht die BDE benutzt:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engi nes\Xbase]
"BDE"=dword:00000002

Damit funktionierte auf den Rechnern ohne BDE der Zugriff per ADO, allerdings wie gesagt, ohne Sonderzeichen.

Ich habe auf dem Testrechner die alte Paradox7-Software installiert. Damit kann ich auf die dBase-Datei zugreifen und er zeigt mir hier auch die Sonderzeichen korrekt an. Also muss es grundsätzlich funktionieren, nur wie ???

Gerd

PS: Ich habe gerade die Datei mal in Excel importiert. Auch hier werden die Sonderzeichen nicht korrekt angezeigt. Ich vermute, das ist ein grundsätzlichen Problem mit dem Treiber.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Umlaute aus dBase-Datei

  Alt 28. Jan 2010, 13:38
Zitat von gpl:
Mit den Font-Einstellungen hat das wohl nichts zu tun, zumal es unter Vista ja läuft.
a) Dann spiel mal in einer stillen stunde mit den vorhandenen Fonts herum.
b) Es funktioniert auf einem Rechner auf dem Vista als Betriebssystem installiert ist. Jetzt müssen nur noch die anderen Einstellungen und Treiber auf die Reihe gebracht werden.

Zitat von gpl:
...
eingerichtet. Leider kann man dort keine weiteren Parameter einstellen. Also auch Sackgasse!
nicht ganz. Unter Optionen kann die Sortierreihenfolge eingestellt werden. Versuch's mal damit.

Zu der BDE sag ich jetzt mal nichts,da mir zu viel vom Hintergrund fehlt.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
gpl

Registriert seit: 28. Jan 2010
Ort: Nähe Bonn
12 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Umlaute aus dBase-Datei

  Alt 28. Jan 2010, 14:09
ja, die Sortierreihenfolge hatte ich schon gefunden, leider gehts damit auch nicht.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Umlaute aus dBase-Datei

  Alt 28. Jan 2010, 14:19
Hallo,

Zitat:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engi nes\Xbase]
Wo doch dort eh schon drin bist

DataCodePage müßte der Eintrag sein.

Probier mal ANSI.


Für ODBC gibt es auch einen ODBC CodePage Translator

Ob das auch für DBase gilt, weiss ich nicht.


Heiko
Heiko
  Mit Zitat antworten Zitat
gpl

Registriert seit: 28. Jan 2010
Ort: Nähe Bonn
12 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Umlaute aus dBase-Datei

  Alt 28. Jan 2010, 14:38
100 Punkte gehen an .... HEIKO!

Klasse, das war's! Jetzt funktioniert es.

Ich hatte mir ja gedacht, dass es nur eine kleinigkeit sein konnte, aber DARAUF wäre ich im Leben nicht gekommen.

Herzlichen Dank nochmal an alle.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Umlaute aus dBase-Datei

  Alt 28. Jan 2010, 15:13
Hallo,

was war es denn ?

ANSI

?


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:13 Uhr.
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