Datenbankabfrage QSqlQuery + ODBC - statt String nur Müll
Verfasst: 9. Juni 2009 11:12
Guten Morgen erstmal.
Ich habe hier ein kleines Problem. Folgender Aufbau:
Frontbase Datenbank mit einer Tabelle. Diese Tabelle hat mehrere int und VARCHAR Spalten.
Weiterhin ist der Frontbase ODBC-Treiber installiert.
Ich verwende nun die aktuelle QT Version und die QT-Klassen um die Datenbank auszulesen. Genau gesagt benutze ich QSqlQuery, da ich die Modelle bisher mit der Datenbank nicht funktionierend hinbekommen habe.
Die Abfrage von Integer Werten funktioniert. Ich mache mein Query mittels exec. Dann lese ich die Werte mittels value(i) aus. Umgewandelt wird bei integer mit .toInt(). Das klappt soweit.
QSqlQuery query(db);
QString querycommand = "SELECT ...";
query.exec(querycommand);
query.next();
//i ist natürlich hier im Beispiel nur ein Platzhalter...
QString foo = query.value(i).toString();
liefert mir Strings mit "ÌÌÌÌÌÌÌÌÌÌ". Für jeden Buchstaben der in dem Feld der Datenbank steht liefert mir QT ÌÌÌ
Ich weiß definitiv, dass die Daten in der Tabelle als Unicode liegen.
Hab ich ein Brett vor Augen und überseh irgendwas?
:rolleyes:
Ich hab das Auslesen gerade mit der OTL versucht und da kann ich die Strings einwandfrei auslesen.
Ich habe hier ein kleines Problem. Folgender Aufbau:
Frontbase Datenbank mit einer Tabelle. Diese Tabelle hat mehrere int und VARCHAR Spalten.
Weiterhin ist der Frontbase ODBC-Treiber installiert.
Ich verwende nun die aktuelle QT Version und die QT-Klassen um die Datenbank auszulesen. Genau gesagt benutze ich QSqlQuery, da ich die Modelle bisher mit der Datenbank nicht funktionierend hinbekommen habe.
Die Abfrage von Integer Werten funktioniert. Ich mache mein Query mittels exec. Dann lese ich die Werte mittels value(i) aus. Umgewandelt wird bei integer mit .toInt(). Das klappt soweit.
QSqlQuery query(db);
QString querycommand = "SELECT ...";
query.exec(querycommand);
query.next();
//i ist natürlich hier im Beispiel nur ein Platzhalter...
QString foo = query.value(i).toString();
liefert mir Strings mit "ÌÌÌÌÌÌÌÌÌÌ". Für jeden Buchstaben der in dem Feld der Datenbank steht liefert mir QT ÌÌÌ
Ich weiß definitiv, dass die Daten in der Tabelle als Unicode liegen.
Hab ich ein Brett vor Augen und überseh irgendwas?
Ich hab das Auslesen gerade mit der OTL versucht und da kann ich die Strings einwandfrei auslesen.