前面,写了一篇关于解决QSqlQuery::exec: database not open的博文,解决的方案是在QSqlQuery初始化的时候为其指定数据库。但我们明明链接好了唯一的数据库,为什么还要在这里为其指定数据库呢?这样太不方便了!这就失去了QSqlQuery的灵活性(相对QSqlQueryModel QSqlTableModel来说QSqlQuery的特点就是灵活)。
在测试时发现如果数据库连接成功后,立即声明一个QSqlQuery而不为其指定数据库来初始化是可以正常操作数据库的。
测试代码如下:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("database1.db");
if(!db.open()) return false;
else
{
printf("connect successed! \n");
return true;
}
QSqlQuery s;
s.exec("select * from student");
if(s.first())
qDebug()<<s

本文探讨了在使用QSqlQuery时不指定数据库进行初始化的方法,并提供了具体的实现代码。作者通过不同场景的测试验证了该方法的可行性。
最低0.47元/天 解锁文章
800

被折叠的 条评论
为什么被折叠?



