如何通过使用SQL更新数据库(MS Access .mdb)中的数据

时间:2019-06-27 11:21:36

标签: c++ sql database qt ms-access

我想在QT Creator C ++中使用SQL更新数据库(MS Access .mdb)中的数据,但是什么也没发生。

我试图用谷歌搜索它,但还是没有。

void Chairs::on_pushButton_clicked()
{
    mDatabase = QSqlDatabase::addDatabase("QODBC");
    mDatabase.setDatabaseName(ACCESS);

   if(!mDatabase.open())
   {
       QMessageBox::critical(this, "Error", 
mDatabase.lastError().text());
       return;
   }

   int quantity_of_chairs = 14;

   int value = 1;
    for (int i = 0; i < quantity_of_chairs; i++)
    {
        if(ui->comboBox->currentText() == value)
        {
            QSqlQueryModel *setquery1 = new QSqlQueryModel;
            setquery1->setQuery("UPDATE Chairs SET Status = 'Ordered' 
WHERE number_of_chair = "+value);
            QTableView *tv = new QTableView(this);
            tv->setModel(setquery1);
            ui->tableView->setModel(setquery1);
        }
        value++;
    }
}
  

QSqlDatabasePrivate :: removeDatabase:连接   'qt_sql_default_connection'仍在使用中,所有查询将停止   工作。 QSqlDatabasePrivate :: addDatabase:重复的连接名称   'qt_sql_default_connection',旧的连接已删除。

1 个答案:

答案 0 :(得分:1)

答案很旧,但是我自己也遇到了同样的问题,所以我找到了一个解决问题的方法(当然,不一定是最优化的)。

出现此消息是因为您试图在同一连接上连接多个连接(默认连接)

每次您要为新连接建立连接时,您只需更改连接的默认名称 mDatabase.defaultConnection="a_name_for_connection";