Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Polish
  4. UPDATE tabela set wiersz WHERE id=varible
Qt 6.11 is out! See what's new in the release blog

UPDATE tabela set wiersz WHERE id=varible

Scheduled Pinned Locked Moved Unsolved Polish
3 Posts 2 Posters 2.0k 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.
  • E Offline
    E Offline
    Etro
    wrote on last edited by
    #1

    Cześć
    Mam problem z edycją tabeli w bazie danych. Proszę o pomoc w rozwiązaniu.
    Chciałbym aby została zmieniona wartość w komórce w której id jest równe zmiennej.
    pozwoli mi to użyć funkcji, która skróci cały kod.
    W tej chwili powtarzam kilka razy ten sam kawałek kodu tylko z innym id.
    kod wygląda następująco:

    oid MainWindow::on_tzdz_clicked()
    {
        QSqlQuery updateQuery = QSqlQuery(db);
        query.first();
        while(query.next())
        {
            updateQuery.exec("UPDATE wezwanie SET kontrolna = 0,pierwsza = 0, problemj = 0 WHERE id=8");
            ui->statusBar->showMessage(QString("Koniec Kontroli"+ updateQuery.lastError().text()));
        } 
    }
    
    
    1 Reply Last reply
    0
    • T Offline
      T Offline
      turaz
      wrote on last edited by
      #2

      Nie wiem, czy dokładnie o to Ci chodzi:

      void MainWindow::on_tzdz_clicked()
      {
          int id = 8;
          QSqlQuery updateQuery = QSqlQuery(db);
          updateQuery.prepare("UPDATE wezwanie SET kontrolna = 0,pierwsza = 0, problemj = 0 WHERE id=%id");
          updateQuery.bindValue(QStringLiteral("%id"), id);
          updateQuery.exec();
          ui->statusBar->showMessage(QString("Koniec Kontroli"+ updateQuery.lastError().text())); 
      }
      

      W tym przykładzie pokazałem Ci jak wstawić zmienną do zapytania. Oczywiście dla własnego użytku w przypadku kilku zmiennych możesz je wstawić z jakiejś listy w jednym zapytaniu. Z tym, że nazwa bindValue dla każdej wartości musi być inna, tzn. nie możesz mieć kilku "%id" w jednym zapytaniu, ale możesz zastąpić to w pętli wartościami %id0, %id1 itd. Wtedy zapytanie będzie miało zawartość:

      "UPDATE wezwanie SET kontrolna = 0,pierwsza = 0, problemj = 0 WHERE id=%id0 or id=%id1"
      
      1 Reply Last reply
      0
      • E Offline
        E Offline
        Etro
        wrote on last edited by
        #3

        Dokładnie o to chodziło dzięki.

        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