Qt 判断SQLITE数据表是否存在,不存在创建数据表C++
时间: 2023-08-22 14:06:01 浏览: 256
基于Qt和SQlite数据库实现的简易记录小程序
可以使用以下代码来实现判断SQLite数据表是否存在,如果不存在就创建数据表:
```c++
#include <QtSql>
bool createTableIfNotExists(QSqlDatabase db, QString tableName, QString tableFields) {
QSqlQuery query(db);
// 判断数据表是否存在
query.prepare("SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=:tableName");
query.bindValue(":tableName", tableName);
if (!query.exec()) {
qDebug() << "Error occurred while checking if table exists: " << query.lastError();
return false;
}
query.next();
int count = query.value(0).toInt();
if (count == 0) {
// 数据表不存在,创建数据表
QString createTableQuery = QString("CREATE TABLE %1 (%2)").arg(tableName).arg(tableFields);
if (!query.exec(createTableQuery)) {
qDebug() << "Error occurred while creating table: " << query.lastError();
return false;
}
}
return true;
}
```
其中,`db` 是已经打开的 SQLite 数据库连接,`tableName` 是数据表名称,`tableFields` 是数据表字段定义。在调用该函数时,只需要传入这三个参数即可。如果数据表不存在,该函数会自动创建数据表并返回 `true`,否则返回 `false`。
阅读全文