Hallo liebe Community,
ich habe mal wieder ein Problem mit Paradox bei dem mir Google bisher nicht helfen konnte.
Das Problem:
Wir benutzen eine Anwendung auf Basis einer Paradox-Datenbank.
Beim Laden der Daten in eine SQL-Datenbank (sowie auch beim Laden mit anderen Tools, wie Excel, QlikView etc.) werden die Umlaute falsch dargestellt.
Bisher haben wir die Umlaute mit Referenztabellen übersetzt, was aber keine sonderlich tolle Möglichkeit ist, da wir immer wieder Sonderzeichen finden, welche bisher nicht dabei sind (z.B. ş) und die Anweisungen zum Ersetzen dann immer länger werden, z.B. REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(RE PLACE(<Spaltenname>,"õ","ä"),"▀","ß"),"³","ü"),"÷" ,"ö"),"▄","Ü"),"─","Ä"),"Í","Ö") für SSIS.
Dazu kommt noch, dass man erst noch die Spalten finden muss, auf welche dieses REPLACE anzuwenden ist und es ist auch recht umständlich, dass dann immer überall mit reinzukopieren.
Nun fiel mir auf, dass Paradox 7 die Tabelle korrekt darstellt. Das müsste doch auch per ODBC bzw. OLE DB (Microsoft Jet 4.0) möglich sein.
Ich wurde dann auf die "LANGDRIVER"-Option aufmerksam und habe versucht, diese in meiner BDE-Konfiguration (Konfiguration/Treiber/Native/Paradox und Konfiguration/System/INIT) auf 'WEurope' ANSI umzustellen, was aber keine Änderungen brachte. (Immernoch falsche Umlaute per OLE DB und korrekte Darstellung in Paradox 7)
Gemäß http://entwickler-forum.de/showthrea...-ADODB-mit-BDE habe ich in der Tabelle selbst ist "Pdox ANSI Intl." als Sprachtreiber angegeben, wenn ich die Tabelle umstrukturiere und den Sprachtreiber auf 'WEurope' ANSI umstelle, dann kann ich die Tabelle ordentlich über OLE DB lesen, aber das umstrukturieren lässt sich schlecht automatisieren (das Paradox Fenster bleibt öffen, man bekommt keine Rückmeldung, wann das Skript fertig ist) und kostet auch viel Zeit (30Minuten für eine 700MB Tabelle, insgesamt wären es aber viel mehr Tabellen).
Bei meiner Suche habe ich folgendes gefunden: http://www.delphipraxis.net/22671-bd...-per-code.html. Dort wurde für Delphi folgende Lösung gefunden:
Jetzt hoffe ich, dass ich diese Einstellung vielleicht auch irgendwie über den ConnectionString oder irgendwie anders übergeben kann, doch habe ich keine Ahnung, wie.
Was könnte ich sonst noch versuchen?
Vielen Dank für's Lesen und natürlich für eventuelle Antworten ;-)
ich habe mal wieder ein Problem mit Paradox bei dem mir Google bisher nicht helfen konnte.
Das Problem:
Wir benutzen eine Anwendung auf Basis einer Paradox-Datenbank.
Beim Laden der Daten in eine SQL-Datenbank (sowie auch beim Laden mit anderen Tools, wie Excel, QlikView etc.) werden die Umlaute falsch dargestellt.
Bisher haben wir die Umlaute mit Referenztabellen übersetzt, was aber keine sonderlich tolle Möglichkeit ist, da wir immer wieder Sonderzeichen finden, welche bisher nicht dabei sind (z.B. ş) und die Anweisungen zum Ersetzen dann immer länger werden, z.B. REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(RE PLACE(<Spaltenname>,"õ","ä"),"▀","ß"),"³","ü"),"÷" ,"ö"),"▄","Ü"),"─","Ä"),"Í","Ö") für SSIS.
Dazu kommt noch, dass man erst noch die Spalten finden muss, auf welche dieses REPLACE anzuwenden ist und es ist auch recht umständlich, dass dann immer überall mit reinzukopieren.
Nun fiel mir auf, dass Paradox 7 die Tabelle korrekt darstellt. Das müsste doch auch per ODBC bzw. OLE DB (Microsoft Jet 4.0) möglich sein.
Ich wurde dann auf die "LANGDRIVER"-Option aufmerksam und habe versucht, diese in meiner BDE-Konfiguration (Konfiguration/Treiber/Native/Paradox und Konfiguration/System/INIT) auf 'WEurope' ANSI umzustellen, was aber keine Änderungen brachte. (Immernoch falsche Umlaute per OLE DB und korrekte Darstellung in Paradox 7)
Gemäß http://entwickler-forum.de/showthrea...-ADODB-mit-BDE habe ich in der Tabelle selbst ist "Pdox ANSI Intl." als Sprachtreiber angegeben, wenn ich die Tabelle umstrukturiere und den Sprachtreiber auf 'WEurope' ANSI umstelle, dann kann ich die Tabelle ordentlich über OLE DB lesen, aber das umstrukturieren lässt sich schlecht automatisieren (das Paradox Fenster bleibt öffen, man bekommt keine Rückmeldung, wann das Skript fertig ist) und kostet auch viel Zeit (30Minuten für eine 700MB Tabelle, insgesamt wären es aber viel mehr Tabellen).
Bei meiner Suche habe ich folgendes gefunden: http://www.delphipraxis.net/22671-bd...-per-code.html. Dort wurde für Delphi folgende Lösung gefunden:
in meiner Klasse TDatabase habe ich der Eigenschaft Params den String:
/KONFIGURATION/SYSTEM/INIT/LANGDRIVER=Paradox 'intl'
zugefügt und nun interessiert es nicht mehr was in der BDE (idapi32.cfg)
für ein Sprachtreiber angegeben ist !!!!
/KONFIGURATION/SYSTEM/INIT/LANGDRIVER=Paradox 'intl'
zugefügt und nun interessiert es nicht mehr was in der BDE (idapi32.cfg)
für ein Sprachtreiber angegeben ist !!!!
Was könnte ich sonst noch versuchen?
Vielen Dank für's Lesen und natürlich für eventuelle Antworten ;-)
Comment