Qt中sqllite数据库判断一张表是否存在

今天在学习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();
}

猜你喜欢

转载自blog.csdn.net/len_yue_mo_fu/article/details/80644595