|
ADO und Umlaute in der Paradox-Datenbank
Frage: In einem VBScript greife ich über ADO auf eine Paradox-Tabelle zu. Der Zugriff auf die Datenbanktabellen funktioniert soweit einwandfrei, bis auf die fehlerhafte Wiedergabe von Umlauten. Was muss ich einstellen, um die Umlaute korrekt lesen und schreiben zu können.
Antwort: Das Problem besteht darin, dass beim Zugriff auf eine Paradox-Datenbank durch die BDE immer gleich 2 verschiedene Stellen (Erbe des DOS-Ursprungs) die Interpretation des Zeichensatzes bestimmen:
1. Die Tabellen-Eigenschaft Sprachtreiber (siehe Datenbankoberfläche | Tools | Tabellenoperation | Strukturinfo | Sprachtreiber) wird im Header der DB-Datei gespeichert und legt die binäre Speicherung der Zeichen in der Datei fest.
2. Die BDE-Alias-Eigenschaft LANGDRIVER legt die Anzeige in der Benutzeroberfläche fest.
Nur dann, wenn beide Einstellungen zusammenpassen, stellt die BDE den Zeichensatz korrekt dar. Beim Zugriff über ADO gilt das Gleiche, solange die DB-Datei keinen Windows-konformen Zeichensatz (Eigenschaft Sprachtreiber) nutzt, wird es diese Darstellungsprobleme geben. Beim Sprachtreiber-Wert WEurope ANSI gibt es zum Beispiel keine Problem bei Umlauten, wenn das Programm über ADO (OLE DB Provider der MS Jet Engine 4.0) auf die Paradox-Datenbank zugreift. Die Konfiguration der dbGo-Komponenten im Objektinspektor sieht dabei wie folgt aus:
object ADOConnection1: TADOConnection
Connected = True
ConnectionString =
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Database;Extende' +
'd Properties=Paradox 5.x;Persist Security Info=False'
LoginPrompt = False
Mode = cmShareDenyNone
Provider = 'Microsoft.Jet.OLEDB.4.0'
Left = 64
Top = 48
end
object ADODataSet1: TADODataSet
Active = True
Connection = ADOConnection1
CursorType = ctStatic
CommandText = 'Umlaut'
CommandType = cmdTableDirect
Parameters = <>
Left = 112
Top = 48
end
|