今天在学习Qt的时候,打算使用Qt中的sqllist做一个小的Daemo,但是第一次在使用数据库的时候需要在代码中创建表,于是需要先判断表是否存在,于是去网上搜了一下,发现网上的案例都是下面这样:
bool IsTableExist(QSqlQuery &query,QString table)
{
QString sql = QString("select count(*) from sqlite_master where type = 'table' name='%1'").arg(table);
return query.exec(sql);
}
这种方法查询的是数据库中有没有表的数据,肯定会有结果返回,所以query.exec(sql)执行的结果一定是true,只是查询的结果如果没有这张表的话是0,有的话是1。必须把查询的结果拿出来和0做比较,但是网上的方法都没有这样做。
下面是我自己想出来的方法,其实差不多,但是不用取出查询的结果。
bool IsTableExist(QSqlQuery &query,QString table)
{
QString sql = QString("select * from sqlite_master where name='%1'").arg(table);
query.exec(sql);
return query.next();
}