[gelöst] SQL Zeichencodierung

Alles rund um die Programmierung mit Qt
Antworten
dontinelli
Beiträge: 146
Registriert: 22. September 2006 20:53

[gelöst] SQL Zeichencodierung

Beitrag von dontinelli »

Hallo zusammen

Nach langem Ringen habe ich es nun endlich geschafft, von Linux über den ODBC-Treiber auf eine MS SQL Datenbank zu greifen. Nun gibt es aber ein Problem bei der Anzeige: Grossbuchstaben sowie Umlaute (und ev. noch andere Zeichen) werden im TableView nicht korrekt dargestellt.
Kann ich die Zeichencodierung eines QSqlTableModel oder eines QSqlQuery global ändern oder muss ich jeden Eintrag über die Funktionen in QString ändern? Oder gibt es noch eine weitere Möglichkeit?
Die Codierung der Tabelle kann ich nicht ändern, da von anderer Seite auch darauf zugegriffen wird.

Cheers
DonTinelli
Zuletzt geändert von dontinelli am 30. August 2007 00:03, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Gibt es die möglichkeit die Zeichenkodierung für den Clienten beim verbinden anzugeben?
dontinelli
Beiträge: 146
Registriert: 22. September 2006 20:53

Beitrag von dontinelli »

Keine Anhnung. Wie kann man das testen?
Ich habe mir übrigens die Tabelle mal mit dem DataManager von unixODBC angeschaut. Da werden zwar die Grossen Buchstaben, nicht aber die Umlaute richtig dargestellt.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Leute, wenn ihr mit Datenbanken arbeiten wollt, solltet ihr euch damit auch auskennen...
dontinelli
Beiträge: 146
Registriert: 22. September 2006 20:53

Beitrag von dontinelli »

Danke, das hat mir weitergeholfen...

Mitlerweile habe ich herausgefunden, dass es daran liegt, dass in der Datenbank nvarchar als Dateityp angegeben ist, die varchar werde richtig übernommen. Ist jemandem das Problem bekannt, weshalb bei der Umwandlung von nvarchar in QString (über einen QVariant im QSqlQuery) solche "Fehler" entstehen? nvarchar sollte doch auch Unicode sein, oder?

Cheers
DonTinelli
dontinelli
Beiträge: 146
Registriert: 22. September 2006 20:53

Beitrag von dontinelli »

Eine Qt-Lösung scheint es wohl nicht zu geben.
Ich habe das Problem jetzt so umgangen, dass ich in der SELECT-Anfrage den Dateityp in varchar konvertiere:

Code: Alles auswählen

CAST(p.Adresse as varchar)
Antworten