QSqlQuery conAccessDB::excuteSQL(QString sqlcmd){
if(!db.open()){
qDebug() << "Database Error: " << db.lastError().text();
return QSqlQuery();
}
if(!query.exec(sqlcmd)){
qDebug() << "Database Error: When excute \"" << sqlcmd << "\"";
db.close();
return QSqlQuery();
}
db.close();
return query;
}
我是在打开了数据库之后才执行的query.exec(sqlcmd),为何还会出现数据库没打开(QSqlQuery::exec: database not open)的提示?我该怎么做?
------解决方案--------------------
怎么看多觉得很别扭。 能把所有代码贴出来嘛?query 和 db你是在哪里关联起来的。
------解决方案--------------------
楼主,其实挺简单,你这么试试看:
QSqlQuery conAccessDB::excuteSQL(QString sqlcmd){
if(!db.open()){
qDebug() << "Database Error: " << db.lastError().text();
return QSqlQuery();
}
QSqlQuery myQuery(db);
if(!myQuery.exec(sqlcmd)){
qDebug() << "Database Error: When excute \"" << sqlcmd << "\"";
db.close();
return QSqlQuery();
}
db.close();
return myQuery;
}