Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. ODBC Driver issue
Qt 6.11 is out! See what's new in the release blog

ODBC Driver issue

Scheduled Pinned Locked Moved General and Desktop
14 Posts 4 Posters 9.5k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ? Offline
    ? Offline
    A Former User
    wrote on last edited by
    #1

    As I published in "this thread":http://developer.qt.nokia.com/forums/viewthread/7316 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");
    db.setDatabaseName(dsn);
    QString result;
    QString stmt = "select COL1,COL2 from TABLE_1";
    QSqlQuery query;
    QStringList delist;

    if (db.open(user,pwd)) {
    if (query.exec(stmt)) {
    while (query.next()) {
    result = query.value(0).toString() + " - " + query.value(1).toString();
    delist.push_back(result);
    }
    }
    else {
    QMessageBox msgbox;
    msgbox.setText( query.lastError().text() );
    msgbox.exec();
    }
    }
    delist.sort();
    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?

    1 Reply Last reply
    0
    • ? Offline
      ? Offline
      A Former User
      wrote on last edited by
      #2

      bump

      1 Reply Last reply
      0
      • ? Offline
        ? Offline
        A Former User
        wrote on last edited by
        #3

        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: http://www.codeinvain.com/blog/378/installing-qt-4-7-x-for-vs2010), and I had to install the ODBC-plugin for Qt myself (http://doc.qt.nokia.com/4.7-snapshot/sql-driver.html#qodbc). Can anyone help?

        1 Reply Last reply
        0
        • ? Offline
          ? Offline
          A Former User
          wrote on last edited by
          #4

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

          1 Reply Last reply
          0
          • ? Offline
            ? Offline
            A Former User
            wrote on last edited by
            #5

            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.

            1 Reply Last reply
            0
            • ? Offline
              ? Offline
              A Former User
              wrote on last edited by
              #6

              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.

              1 Reply Last reply
              0
              • ? Offline
                ? Offline
                A Former User
                wrote on last edited by
                #7

                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): http://maxdb.sap.com/doc/7_7/44/bb285be00215b2e10000000a155369/content.htm

                1 Reply Last reply
                0
                • ? Offline
                  ? Offline
                  A Former User
                  wrote on last edited by
                  #8

                  Try
                  @
                  QTextCodec::setCodecForLocale(QTextCodec::codecFromName("latin1"));
                  @
                  at the beginning of your application.

                  1 Reply Last reply
                  0
                  • ? Offline
                    ? Offline
                    A Former User
                    wrote on last edited by
                    #9

                    Neither
                    @
                    QTextCodec::setCodecForLocale(QTextCodec::codecForName("Latin1"));
                    @
                    nor
                    @
                    QTextCodec::setCodecForLocale(QTextCodec::codecForName("latin1"));
                    @
                    works.

                    1 Reply Last reply
                    0
                    • ? Offline
                      ? Offline
                      A Former User
                      wrote on last edited by
                      #10

                      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);
                      @

                      1 Reply Last reply
                      0
                      • ? Offline
                        ? Offline
                        A Former User
                        wrote on last edited by
                        #11

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

                        1 Reply Last reply
                        0
                        • ? Offline
                          ? Offline
                          A Former User
                          wrote on last edited by
                          #12

                          Anyone any idea???

                          1 Reply Last reply
                          0
                          • ? Offline
                            ? Offline
                            A Former User
                            wrote on last edited by
                            #13

                            bump
                            Still having this issue...

                            1 Reply Last reply
                            0
                            • ? Offline
                              ? Offline
                              A Former User
                              wrote on last edited by
                              #14

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

                              1 Reply Last reply
                              0

                              • Login

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • Users
                              • Groups
                              • Search
                              • Get Qt Extensions
                              • Unsolved