我想在 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' is still in use, all queries will cease to work. QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.

请您参考如下方法:

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

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

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


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!