Laden...

Auf Ansi-kodierte DBase-Datenbank zugreifen

Erstellt von sir-archimedes vor 17 Jahren Letzter Beitrag vor 17 Jahren 6.683 Views
S
sir-archimedes Themenstarter:in
52 Beiträge seit 2006
vor 17 Jahren
Auf Ansi-kodierte DBase-Datenbank zugreifen

Hallo,

ich habe eine Ansi-kodierte Datenbank auf die ich via Odbc zugreife. Allerdings scheint der Microsoft-DBase-Treiber nur OEM-kodierte DBase-Datenbanken lesen zu können. Das heißt alle Sonderzeichen und Umlaute werden falsch dargestellt.

Weiß jemand, wie ich die Daten entweder konvertieren kann oder wie ich direkt eine "Ansi"-Verbindung zu dieser DBase-Datei aufbauen kann?

Viele Grüße und vielen Dank!

D
496 Beiträge seit 2005
vor 17 Jahren

welche dbase version?

"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."

S
sir-archimedes Themenstarter:in
52 Beiträge seit 2006
vor 17 Jahren

Ich meine Dbase III - kann aber auch Dbase IV sein. Ist auf jeden Fall schon älter...

D
496 Beiträge seit 2005
vor 17 Jahren

das klingt ziemlich nach visual fox pro, probier die treiber mal aus

"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."

S
sir-archimedes Themenstarter:in
52 Beiträge seit 2006
vor 17 Jahren

Hmm, ich habe den Visal Fox Pro Treiber mal installiert - dann habe ich allerdings gleich zwei Probleme: erstens sind die Umlaute immernoch falsch, zweitens werden die Felder mit Leerzeichen aufgefüllt.

Ich habe auch schon eine Teillösung gefunden: Wenn man den RegistryKey HKLM\Software\Microsoft\Jet\4.0\Engines\Xbase\DataCodePage von OEM auf ANSI ändert, funktioniert es. Allerdings ändere ich damit systemweit das Verhalten von DBase-Datenbankzugriffen. Das will ich auch verhindern...

Weißt du evtl, wie man diesen Parameter DataCodePage im ConnectionString setzen kann?

Dsn=Schichtplaner;Extended Properties="DataCodePage=ANSI"
und
Dsn=Schichtplaner;DataCodePage=ANSI

bringt beides nichts...

D
496 Beiträge seit 2005
vor 17 Jahren

mmmh das sollte mit den fox pro triebern eigendlich funktionieren da die dbf dateien im ansi format lesen
kannst du vielleicht ein beispiel file posten?

"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."

S
sir-archimedes Themenstarter:in
52 Beiträge seit 2006
vor 17 Jahren

Klar, kann ich machen. Das File habe ich als Anhang hinzugefügt. (Ich musste es zippen, da dbf-Dateien nicht erlaubt sind)

D
496 Beiträge seit 2005
vor 17 Jahren

ich hab deine datei jetzt über den odbc treiber microsoft fox pro VFP (*dbf) mit access geladen und die umlaute sind alle da

womit lädst du die tabellen den und was hast du damit vor?

"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."

S
sir-archimedes Themenstarter:in
52 Beiträge seit 2006
vor 17 Jahren

Komisch. Ich habe einen System-DSN erstellt mit dem "Microsoft dBase VFP Driver (*.dbf)" und greife via OdbcConnection darauf zu. Dann ein einfaches Select und Ausgabe. Ich erhalte statt eines "Ü"s aber nur ein "_".

Den VFP-Treiber habe ich mir von Microsoft heruntergeladen. Oder wo bekomme ich den sonst her? Unter meinen Odbc-Treibern habe ich leider nur den von Microsoft.

Achja: ich möchte einen Datenexport von einigen der Daten aus den Tabellen vornehmen. Das habe ich vor mit C# und einer OdbcConnection zu machen.

D
496 Beiträge seit 2005
vor 17 Jahren

hab versucht dir meine dll anzuhängen war aber größer als 200kb schade,
die dll heisst VFPODBC.DLL und ist version 6.01.8630.01
ach ja du musst in der odbc treiber konfiguration "verzeichniss mit freien tabellen" auswählen und nicht fox pro vielleicht hilft das schon

wohin willst du denn die daten exportieren?
ich hab vor einiger zeit mal einen converter von fox pro mysql geschrieben falls du was ähnliches vorhast.

"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."

S
sir-archimedes Themenstarter:in
52 Beiträge seit 2006
vor 17 Jahren

Hattest du auch mal versucht über Visual Studio die Datei zu öffnen? Ich habe Access leider nicht installiert - somit kann ich nicht schauen, ob Access die Datei richtig lesen würde.

Meine VFPODBC.DLL ist in Version 6.01.8629.01 - also eine Versionsunternummer kleiner als deine. Ob es daran liegt?! Ich glaube eigentlich nicht...

Bei mir dreht es sich um eine spezielle Anwendung: Ich muss aus dieser DBase-Datenbank Fehlzeiten von Mitarbeitern auslesen und für ein anderes Programm als CSV-Datei aufbereiten. Ich glaube da kommt man mit Standardsoftware nicht weiter 😉 Aber danke!!

D
496 Beiträge seit 2005
vor 17 Jahren

ich hab auch nen selbsgeschrieben converter von foxpro zu csv
allerdings ziemlich viel hardcodiertes drin wae nur ne fingerübung
der liest deine datei mit umlauten in visual studio ein
interesse?

"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."

S
sir-archimedes Themenstarter:in
52 Beiträge seit 2006
vor 17 Jahren

Sehr gerne 🙂 Das hardkodierte kann ich dann ja durch meinen Quellcode ersetzen!

Vielen Dank!!!

D
496 Beiträge seit 2005
vor 17 Jahren

ich frikel dir noch eben den mysql kram da raus damit das bei dir funktioniert
dauer eben ca ne viertel stunde.

"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."

D
496 Beiträge seit 2005
vor 17 Jahren

sorry hab die ein bischen zuviel versprochen hab das programm gerade nochmal getestet der import deiner dbf datei funktioniert aber der export zu csv nicht wirklich ich hjab da grad nochmal kurz dran rumgebastelt aber das nicht wieder hingekriegt
vielleicht hilft dir der vorhanden sourcecode ja so das du das selber bauen kannst zumindest kannst du sehen das die umlaute und so richtig angezeigt werden du muss halt nur die dsn und so auf deine treiber umstellen

gruss

ach ja der code ist ziemliches chaos ich hoffe du findest da durch, aber wie gesagt das war reines testgeballer!!

"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."

S
sir-archimedes Themenstarter:in
52 Beiträge seit 2006
vor 17 Jahren

Hi,

klasse, dein ConnectionString hats gebracht 🙂 Den Rest konnte ich nicht wirklich verwenden, da ich für meinen Import zunächst die nötigen Tabellen in passende richtige Objekte einlese, verarbeite und dann erst exportiere. Der Export läuft auch - nur dass bislang Umlaute nicht richtig dargestellt wurden. Aber das klappt jetzt ja...

Dank dir!!