|
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.
|