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

本文介绍了一种在Qt中使用SQLite时检查指定表是否存在的方法。通过两种不同的SQL查询实现,一种直接获取计数,另一种利用游标判断。文章还指出了常见方法的一个潜在缺陷,并提供了一个改进方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在学习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();
}
欢迎关注问我团队公众号:

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值