读书人

QSqlQuery:exec: database not open解

发布时间: 2012-06-07 15:05:14 作者: rapoo

QSqlQuery::exec: database not open

C/C++ code
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你是在哪里关联起来的。
[解决办法]
楼主,其实挺简单,你这么试试看:

C/C++ code
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; } 

读书人网 >QT开发

热点推荐