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. QSqlQuery error with translated text
Qt 6.11 is out! See what's new in the release blog

QSqlQuery error with translated text

Scheduled Pinned Locked Moved Solved General and Desktop
24 Posts 4 Posters 17.2k Views 2 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.
  • KroMignonK KroMignon

    @SPlatten said in QSqlQuery error with translated text:

    having implemented that, I'm still getting the same issue.

    Out of curiosity, the SQL command you want to execute is CALL addAuditEntry("Serveur de formation connecté à la base de données");, right?

    Did you try to do it by hand, on command line or with phpMyAdmin/MySQL Workbench?

    SPlattenS Offline
    SPlattenS Offline
    SPlatten
    wrote on last edited by
    #21

    @KroMignon , Now I'm confused, having put into HeidiSQL:

    CALL addAuditEntry("Serveur de formation connecté à la base de données");
    

    It works with no error reported, so why doesn't the same work when I do:

    QSqlQuery query;
    query.prepare("CALL addAuditEntry(?);");
    query.addBindValue(crstrEntry);
    query.exec();
    

    Kind Regards,
    Sy

    KroMignonK 1 Reply Last reply
    0
    • SPlattenS SPlatten

      @KroMignon , Now I'm confused, having put into HeidiSQL:

      CALL addAuditEntry("Serveur de formation connecté à la base de données");
      

      It works with no error reported, so why doesn't the same work when I do:

      QSqlQuery query;
      query.prepare("CALL addAuditEntry(?);");
      query.addBindValue(crstrEntry);
      query.exec();
      
      KroMignonK Offline
      KroMignonK Offline
      KroMignon
      wrote on last edited by
      #22

      @SPlatten said in QSqlQuery error with translated text:

      It works with no error reported, so why doesn't the same work when I do:

      I suppose the problem is the content of crstrEntry.
      Is this working?

      QSqlQuery query;
      query.prepare("CALL addAuditEntry(?);");
      query.addBindValue("Serveur de formation connecté à la base de données");
      query.exec();
      

      It is an old maxim of mine that when you have excluded the impossible, whatever remains, however improbable, must be the truth. (Sherlock Holmes)

      SPlattenS 2 Replies Last reply
      0
      • KroMignonK KroMignon

        @SPlatten said in QSqlQuery error with translated text:

        It works with no error reported, so why doesn't the same work when I do:

        I suppose the problem is the content of crstrEntry.
        Is this working?

        QSqlQuery query;
        query.prepare("CALL addAuditEntry(?);");
        query.addBindValue("Serveur de formation connecté à la base de données");
        query.exec();
        
        SPlattenS Offline
        SPlattenS Offline
        SPlatten
        wrote on last edited by SPlatten
        #23

        @KroMignon , crstrError is:

        const QString cstrError(crErr.text());
        

        Where crErr is:

        const QSqlError& crErr
        

        Interestingly in Qt Creator / Debugger, when ** crstrError** is viewed in the debugger contains:

         Locals                 
                                     crstrEntry           "Serveur de formation connect� � la base de donn�es"         QString
                                                   [0]         'S'          83          0x0053 QChar
                                                   [1]         'e'          101        0x0065 QChar
                                                   [2]         'r'           114        0x0072 QChar
                                                   [3]         'v'          118        0x0076 QChar
                                                   [4]         'e'          101        0x0065 QChar
                                                   [5]         'u'          117        0x0075 QChar
                                                   [6]         'r'           114        0x0072 QChar
                                                   [7]         ' '           32          0x0020 QChar
                                                   [8]         'd'          100        0x0064 QChar
                                                   [9]         'e'          101        0x0065 QChar
                                                   [10]       ' '           32          0x0020 QChar
                                                   [11]       'f'           102        0x0066 QChar
                                                   [12]       'o'          111        0x006f  QChar
                                                   [13]       'r'           114        0x0072 QChar
                                                   [14]       'm'         109        0x006d QChar
                                                   [15]       'a'          97          0x0061 QChar
                                                   [16]       't'           116        0x0074 QChar
                                                   [17]       'i'           105        0x0069 QChar
                                                   [18]       'o'          111        0x006f  QChar
                                                   [19]       'n'          110        0x006e QChar
                                                   [20]       ' '           32          0x0020 QChar
                                                   [21]       'c'           99          0x0063 QChar
                                                   [22]       'o'          111        0x006f  QChar
                                                   [23]       'n'          110        0x006e QChar
                                                   [24]       'n'          110        0x006e QChar
                                                   [25]       'e'          101        0x0065 QChar
                                                   [26]       'c'           99          0x0063 QChar
                                                   [27]       't'           116        0x0074 QChar
                                                   [28]       '�'        65533   0xfffd    QChar
                                                   [29]       ' '           32          0x0020 QChar
                                                   [30]       '�'        65533   0xfffd    QChar
                                                   [31]       ' '           32          0x0020 QChar
                                                   [32]       'l'           108        0x006c  QChar
                                                   [33]       'a'          97          0x0061 QChar
                                                   [34]       ' '           32          0x0020 QChar
                                                   [35]       'b'          98          0x0062 QChar
                                                   [36]       'a'          97          0x0061 QChar
                                                   [37]       's'           115        0x0073 QChar
                                                   [38]       'e'          101        0x0065 QChar
                                                   [39]       ' '           32          0x0020 QChar
                                                   [40]       'd'          100        0x0064 QChar
                                                   [41]       'e'          101        0x0065 QChar
                                                   [42]       ' '           32          0x0020 QChar
                                                   [43]       'd'          100        0x0064 QChar
                                                   [44]       'o'          111        0x006f  QChar
                                                   [45]       'n'          110        0x006e QChar
                                                   [46]       'n'          110        0x006e QChar
                                                   [47]       '�'        65533   0xfffd    QChar
                                                   [48]       'e'          101        0x0065 QChar
                                                   [49]       's'           115        0x0073 QChar
        

        Its looking like the storage in QString is the bit thats messed up and requires fixing?
        See offsets 28, 30 and 47.

        Found this:
        https://forum.qt.io/topic/113781/qt-5-14-1-qsqlmodel-and-french-characters/17

        Looks like exactly what I'm seeing.

        Kind Regards,
        Sy

        1 Reply Last reply
        0
        • KroMignonK KroMignon

          @SPlatten said in QSqlQuery error with translated text:

          It works with no error reported, so why doesn't the same work when I do:

          I suppose the problem is the content of crstrEntry.
          Is this working?

          QSqlQuery query;
          query.prepare("CALL addAuditEntry(?);");
          query.addBindValue("Serveur de formation connecté à la base de données");
          query.exec();
          
          SPlattenS Offline
          SPlattenS Offline
          SPlatten
          wrote on last edited by
          #24

          @KroMignon , found the problem and fixed. The issue was the QString was being converted back to a const char* which was a bit of old code where it wasn't and shouldn't be converted. Just removed .toLatin1().data() now its perfect.

          Thank you everyone for your help on this.

          Kind Regards,
          Sy

          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