Sonntag, 7. September 2008

entwickler.com Magazine Konferenzen Akademie Entwickler-Forum Jobbörse Bücher
Software & Support Verlag

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






Software & Support Verlag GmbH