首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QSqlQuery:exec: database not open,该怎么解决

2013-06-19 
QSqlQuery::exec: database not openQSqlQuery conAccessDB::excuteSQL(QString sqlcmd){ if(!db.open()){

QSqlQuery::exec: database not open

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; 
}

热点排行