首页 > 解决方案 > 如何使用 SQL 更新数据库 (MS Access .mdb) 中的数据

问题描述

我想通过在 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: connection 'qt_sql_default_connection' 仍在使用中,所有查询都将停止工作。QSqlDatabasePrivate::addDatabase: 重复连接名称 'qt_sql_default_connection',旧连接已删除。

标签: c++sqldatabaseqtms-access

解决方案


答案很老了,但是我自己也遇到了同样的问题,我找到了一个解决方案(当然不一定是最优化的),我没有找到任何主题。

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

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


推荐阅读