Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. QML SQLite database inserting new columns to database

QML SQLite database inserting new columns to database

Scheduled Pinned Locked Moved Solved QML and Qt Quick
9 Posts 2 Posters 1.7k Views
  • 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.
  • Y Offline
    Y Offline
    Yunus
    wrote on 29 Jan 2020, 06:45 last edited by
    #1

    Hi Qt Forum! I am trying to use SQLite database by taking reference this link. I dont want to paste all the code because its exactly same and working well.

    My problem is this example is prepared for 3 columns and I want to make it 4 or more columns but when I tried to insert new columns(I added the same type of codes in cpp side and also qml side) and click add button. It gives me the warning:

    error insert into NameTable
    " Parameter count mismatch"

    How can I add new columns to this example?

    J 1 Reply Last reply 29 Jan 2020, 06:50
    0
    • Y Yunus
      29 Jan 2020, 06:45

      Hi Qt Forum! I am trying to use SQLite database by taking reference this link. I dont want to paste all the code because its exactly same and working well.

      My problem is this example is prepared for 3 columns and I want to make it 4 or more columns but when I tried to insert new columns(I added the same type of codes in cpp side and also qml side) and click add button. It gives me the warning:

      error insert into NameTable
      " Parameter count mismatch"

      How can I add new columns to this example?

      J Offline
      J Offline
      jsulm
      Lifetime Qt Champion
      wrote on 29 Jan 2020, 06:50 last edited by
      #2

      @Yunus New columns are not inserted using INSERT INTO, but https://www.w3schools.com/sql/sql_alter.asp

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      2
      • Y Offline
        Y Offline
        Yunus
        wrote on 29 Jan 2020, 06:53 last edited by
        #3

        @jsulm Thanks for quick reply. I will check the document you shared but can you guide me more specifically because I am still a beginner.

        J 1 Reply Last reply 29 Jan 2020, 06:55
        0
        • Y Yunus
          29 Jan 2020, 06:53

          @jsulm Thanks for quick reply. I will check the document you shared but can you guide me more specifically because I am still a beginner.

          J Offline
          J Offline
          jsulm
          Lifetime Qt Champion
          wrote on 29 Jan 2020, 06:55 last edited by
          #4

          @Yunus Well, it is shown in the link I posted:

          ALTER TABLE table_name
          ADD column_name datatype;
          

          What exact support do you need?
          Keep in mind that you can simply create the tables with all needed columns.

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          2
          • Y Offline
            Y Offline
            Yunus
            wrote on 29 Jan 2020, 06:56 last edited by Yunus
            #5

            @jsulm I mean where I should add these piece of code. Because in this example there is no method similar to it

            J 1 Reply Last reply 29 Jan 2020, 06:57
            0
            • Y Yunus
              29 Jan 2020, 06:56

              @jsulm I mean where I should add these piece of code. Because in this example there is no method similar to it

              J Offline
              J Offline
              jsulm
              Lifetime Qt Champion
              wrote on 29 Jan 2020, 06:57 last edited by
              #6

              @Yunus It's a SQL query, so you do it in the same way you do with your other queries in your Qt app.

              https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              2
              • Y Offline
                Y Offline
                Yunus
                wrote on 29 Jan 2020, 07:02 last edited by Yunus
                #7

                @jsulm In my example, I think its doing it in createTable() function but how the way I can use the code document suggested. I still couldnt understand how the example adding the columns

                J 1 Reply Last reply 29 Jan 2020, 07:09
                0
                • Y Yunus
                  29 Jan 2020, 07:02

                  @jsulm In my example, I think its doing it in createTable() function but how the way I can use the code document suggested. I still couldnt understand how the example adding the columns

                  J Offline
                  J Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on 29 Jan 2020, 07:09 last edited by jsulm
                  #8

                  @Yunus This is how a table is created in the example you posted:

                      if(!query.exec( "CREATE TABLE " TABLE " ("
                                              "id INTEGER PRIMARY KEY AUTOINCREMENT, "
                                              TABLE_FNAME     " VARCHAR(255)    NOT NULL,"
                                              TABLE_SNAME     " VARCHAR(255)    NOT NULL,"
                                              TABLE_NIK       " VARCHAR(255)    NOT NULL"
                                          " )"
                                      )){
                  

                  If you want to add one more column to this table then simply change that query:

                      if(!query.exec( "CREATE TABLE " TABLE " ("
                                              "id INTEGER PRIMARY KEY AUTOINCREMENT, "
                                              TABLE_FNAME     " VARCHAR(255)    NOT NULL,"
                                              TABLE_SNAME     " VARCHAR(255)    NOT NULL,"
                                              TABLE_NIK       " VARCHAR(255)    NOT NULL",
                                              " my_own_column VARCHAR(255) NOT NULL" 
                                          " )"
                                      )){
                  

                  Adjust this line as needed:

                  "my_own_column VARCHAR(255) NOT NULL" 
                  

                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  1
                  • Y Offline
                    Y Offline
                    Yunus
                    wrote on 29 Jan 2020, 07:17 last edited by Yunus
                    #9

                    @jsulm This was what I tried also. I finally found the problem. I have forgotten to add my column to prepare part which I commented below:

                    bool DataBase::inserIntoTable(const QVariantList &data)
                    {
                        QSqlQuery query;
                    
                        query.prepare("INSERT INTO " TABLE " ( " TABLE_FNAME ", "
                                                                 TABLE_SNAME ", "
                                                                 TABLE_NIK ", "
                                                                 TABLE_MATCH  " ) "
                                      "VALUES (:FName, :SName, :Nik, :Matching)"); // I have forgotten to add my new column to end of  this line
                        query.bindValue(":FName",       data[0].toString());
                        query.bindValue(":SName",       data[1].toString());
                        query.bindValue(":Nik",         data[2].toString());
                        query.bindValue(":Matching",    data[3].toString());
                    
                    
                    
                        if(!query.exec()){
                            qDebug() << "error insert into " << TABLE;
                            qDebug() << query.lastError().text();
                            return false;
                        } else {
                            return true;
                        }
                        return false;
                    }
                    

                    Thank you so much also @jsulm

                    1 Reply Last reply
                    2

                    2/9

                    29 Jan 2020, 06:50

                    7 unread
                    • Login

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