Hallo,
ich habe die Aufgabe, unser Programm, das in VB6 geschrieben ist, UNICODE- fähig zu machen. Die Daten werden sowohl in einer MS SQL-Datenbank gespeichert als auch in einer ORACLE-Datenbank. Die Daten werden auch hin und her kopiert vom MS-SQL nach ORACLE und umgekehrt.
Es gab keine Probleme mit der MSSQL-Datenbank. man musste nur alle Varchar und NVarchar umstellen auf char auf nchar.
In ORACLE habe ich nun zwei Möglichkeiten:
Die Datenbak ganz UNICODE-fähig zu machen, indem ich den NLS_CHARACTERSET auf UTF8 Characterset setze, oder nur Spalten vom Typ NCHAR und NVARCHAR auf einen UTF8 bzw. UTF16 Characterset setze.
Ich habe beides ausprobiert, doch leider bekomme ich, wenn ich Daten aus dem Recordset lese, immer einen UTF8- codierten String.
Um den String richtig in VB6 zu verarbeiten, muss ich immer eine UTF16 Convertierung durchnehmen. Da unsere Anwenedung sehr umfangreich ist, und oft Zugriffe auf die Datenbank stattfindet, ist der Aufwand enorm. Deshalb muss die Möglichkeit bestehen, die String-Daten aus ORACLE-Tabellen direkt in eine UTF16 codierten String zu bekommen.
Leider ist mir das bisher nicht gelungen.
Laut ORACLE-Dolumentation habe ich nicht die Möglichkeit einen UTF-16 CHARACTERSET anzugeben. Dies geht nur für den NATIONAL CHARACTERSET.
Aber auch hier bekomme ich einen UTF-8 codierten String.
Ich vermute, dass dies an der NLS_LANG-Variablen liegt. Aber diese kann ich auch nur mit einem UTF-8 Zeichensatz setzen.
Der Versuch, diese auf GERMAN_GERMANY.AL16UTF16 zu setzen, erzeugte einen Fehler.
Oder kann ich dem Provider sagen, dass er gar keine Konvertierung durchführen soll?
Wie bekomme ich aus einer ORACLE-Datenbank einen UTF16 codierten String??
Ich bin dankbar für für jeden Hinweis!!!
Viele grüße Christine
ich habe die Aufgabe, unser Programm, das in VB6 geschrieben ist, UNICODE- fähig zu machen. Die Daten werden sowohl in einer MS SQL-Datenbank gespeichert als auch in einer ORACLE-Datenbank. Die Daten werden auch hin und her kopiert vom MS-SQL nach ORACLE und umgekehrt.
Es gab keine Probleme mit der MSSQL-Datenbank. man musste nur alle Varchar und NVarchar umstellen auf char auf nchar.
In ORACLE habe ich nun zwei Möglichkeiten:
Die Datenbak ganz UNICODE-fähig zu machen, indem ich den NLS_CHARACTERSET auf UTF8 Characterset setze, oder nur Spalten vom Typ NCHAR und NVARCHAR auf einen UTF8 bzw. UTF16 Characterset setze.
Ich habe beides ausprobiert, doch leider bekomme ich, wenn ich Daten aus dem Recordset lese, immer einen UTF8- codierten String.
Um den String richtig in VB6 zu verarbeiten, muss ich immer eine UTF16 Convertierung durchnehmen. Da unsere Anwenedung sehr umfangreich ist, und oft Zugriffe auf die Datenbank stattfindet, ist der Aufwand enorm. Deshalb muss die Möglichkeit bestehen, die String-Daten aus ORACLE-Tabellen direkt in eine UTF16 codierten String zu bekommen.
Leider ist mir das bisher nicht gelungen.
Laut ORACLE-Dolumentation habe ich nicht die Möglichkeit einen UTF-16 CHARACTERSET anzugeben. Dies geht nur für den NATIONAL CHARACTERSET.
Aber auch hier bekomme ich einen UTF-8 codierten String.
Ich vermute, dass dies an der NLS_LANG-Variablen liegt. Aber diese kann ich auch nur mit einem UTF-8 Zeichensatz setzen.
Der Versuch, diese auf GERMAN_GERMANY.AL16UTF16 zu setzen, erzeugte einen Fehler.
Oder kann ich dem Provider sagen, dass er gar keine Konvertierung durchführen soll?
Wie bekomme ich aus einer ORACLE-Datenbank einen UTF16 codierten String??
Ich bin dankbar für für jeden Hinweis!!!
Viele grüße Christine
Comment