Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Update: Forum Guidelines & Code of Conduct

    ODBC Driver issue

    General and Desktop
    4
    14
    7454
    Loading More Posts
    • 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.
    • E
      EukeSnud last edited by

      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 Reply Quote 0
      • E
        EukeSnud last edited by

        bump

        1 Reply Last reply Reply Quote 0
        • T
          Theophilus last edited by

          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?

          Know Yourelf - if you can...

          1 Reply Last reply Reply Quote 0
          • T
            Theophilus last edited by

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

            Know Yourelf - if you can...

            1 Reply Last reply Reply Quote 0
            • L
              loladiro last edited by

              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 Reply Quote 0
              • T
                Theophilus last edited by

                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.

                Know Yourelf - if you can...

                1 Reply Last reply Reply Quote 0
                • T
                  Theophilus last edited by

                  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

                  Know Yourelf - if you can...

                  1 Reply Last reply Reply Quote 0
                  • L
                    loladiro last edited by

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

                    1 Reply Last reply Reply Quote 0
                    • T
                      Theophilus last edited by

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

                      Know Yourelf - if you can...

                      1 Reply Last reply Reply Quote 0
                      • T
                        Theophilus last edited by

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

                        Know Yourelf - if you can...

                        1 Reply Last reply Reply Quote 0
                        • E
                          EukeSnud last edited by

                          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 Reply Quote 0
                          • T
                            Theophilus last edited by

                            Anyone any idea???

                            Know Yourelf - if you can...

                            1 Reply Last reply Reply Quote 0
                            • E
                              EukeSnud last edited by

                              bump
                              Still having this issue...

                              1 Reply Last reply Reply Quote 0
                              • S
                                Sebtm last edited by

                                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 Reply Quote 0
                                • First post
                                  Last post