Important: Please read the Qt Code of Conduct -

ODBC Driver issue

  • As I published in "this thread": I have issues with my ODBC connection, in detail with querying Umlauts from my oracle database.

    Here is my code:
    @ QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    QString result;
    QString stmt = "select COL1,COL2 from TABLE_1";
    QSqlQuery query;
    QStringList delist;

    if (,pwd)) {
    if (query.exec(stmt)) {
    while ( {
    result = query.value(0).toString() + " - " + query.value(1).toString();
    else {
    QMessageBox msgbox;
    msgbox.setText( query.lastError().text() );
    cbDe->addItems(delist); // add to combobox@

    Umlauts like ä,ö,ü,ß are being displayed as "�" if I choose ODBC driver like in the code above. If I switch from "QODBC" to "QOCI" all Umlauts are transmitted correctly.

    This seems do be a driver issue, doesn't it?

  • bump

  • I have a similar if not the same problem. Umlauts like ä,ö,ü,ß are being displayed as “�”.
    I'm using Qt 4.7.3, Windows 7, VS2010, and a QODBC3-Driver. I had to build Qt 4.7.3 myself (used this webside:, and I had to install the ODBC-plugin for Qt myself ( Can anyone help?

  • EukeSnud, I'm just curious: What Qt-Version, DB and OS are you using?

  • Does the Backend DB you use support Unicode? If so, could you post your DB structure to make sure there's no error in it.

  • I'm using MaxDB (Version 7.6). The Table "DBPARAMETERS" says "_UNICODE" = "NO" and "DEFAULT_CODE" = "ASCII", which means that the varchar datatype is stored as ascii. However, the same software with an older Qt-Version (4.1) displays the Umlauts correctly.
    Here's some background information: I've been trying to integrate an older software into a new environment. The old software was compiled in VS2003 with Qt 4.1. Now I've compiled it in VS2010 with Qt 4.7.3. Both versions run properly on Windows 7 with the same ODBC-driver. However, the old one displays the Umlauts correctly, while the new one does not. Therefore, I think it is the newer Qt-Version that is giving me a hard time.

  • This webside says that MaxDB up to and including version 7.6 uses the ASCII-characterset ISO 8859/1.2 (if you chose to use Ascii):

  • Try
    at the beginning of your application.

  • Neither

  • The following code changes the "�" to a "?". I do not know if that helps at all, to get to the source of the error.

    Original code:
    QString name =q2.value(1).toString(); //q2 being the QSqlQuery
    Changed code (that changes the "�" to a "?"):
    QByteArray encodedString = q2.value(1).toByteArray();
    QTextCodec *codec = QTextCodec::codecForName("ISO 8859-1");
    QString name = codec->toUnicode(encodedString);

  • Qt Version is 4.7.3
    Db Version is Oracle Enterprise
    Os is Win7 Ultimate x64

  • Anyone any idea???

  • bump
    Still having this issue...

  • I have the same problem with a Visual Fox Pro database with the ISO Latin-1 character encoding. I use Qt 4.7.4.

Log in to reply