Donnerstag, 17. Mai 2012

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

Webhosting mit Host Europe
Umlautprobleme bei InterBase über ADO

Frage: Wie kann ich über ADO auf die InterBase-Datenbank mit dem richtigen Zeichensatz ansprechen, so dass auch deutsche Umlaute nicht verstümmelt werden? Es liegt wohl daran, dass im Gegensatz zu TIBDatabase bei TADOConnection kein Zeichensatz explizit angegeben werden kann.

Antwort: Diese Aussage ist so nicht korrekt, denn für die Verbindung zur Datenbank ist nicht die VCL-Komponente TADOConnection (oder das darunterliegende native Connection-Objekt von ADO) zuständig, sondern statt dessen der eingebunden OLE DB Provider. Wie das folgende Beispiel für den SIBProvider zeigt, stellt dieser für den Zugriff auf eine InterBase-Datenbank die Eigenschaft CHARACTER SET zur Verfügung:

  object ADOConnectionMain: TADOConnection
    ConnectionString = 
      'Provider=sibprovi.SIBProvider;Password=masterkey;User ID=SYSDBA;' +
      'Data Source=C:\Database\SIBProv.gdb;Location=localhost:;Extended' +
      ' Properties="";Persist Encrypted=True;Encrypt Password=True;Mask' +
      ' Password=True;Cache Authentication=True;Persist Security Info=T' +
      'rue;CHARACTER SET="";ROLE=""'
    IsolationLevel = ilReadCommitted
    LoginPrompt = False
    Provider = 'sibprovi.SIBProvider'
    Left = 8
    Top = 8
  end
Um die Frage "Wie kann ich über ADO trotzdem die InterBase-Datenbank mit dem richtigen Zeichensatz ansprechen?" wirklich beantworten zu können, wird zuerst die Information über den genutzten OLE DB Provider benötigt. In der Dokumentation dieses Providers muss die notwendige Syntax enthalten sein, über die der Zeichensatz definiert werden kann.






Software & Support Media GmbH