gpt4 book ai didi

c++ - QSqlDatabase 检查数据库是否已经存在

转载 作者:行者123 更新时间:2023-11-28 06:11:28 25 4
gpt4 key购买 nike

我需要在本地系统上存储一些值并稍后以表格格式访问它,所以我选择了 QSqlDatabase。首先我必须检查数据库是否已经存在。但是使用下面的代码我总是收到消息 Data base not exist creating new.... 可能是什么问题?

#include <QtCore/QCoreApplication>
#include <QtSql/QSqlDatabase>
#include "QFile"
#include "QDebug"

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString dbName = "lprDB";
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");

if( QFile::exists(dbName))
{
qDebug()<<"Data base exist....";
}
else {
qDebug()<<"Data base not exist creating new....";
db.setDatabaseName(dbName);
}

return a.exec();
}

最佳答案

如@Armatel 所述,您应该打开数据库,这将创建数据库文件。

#include <QtCore/QCoreApplication>  
#include <QtSql/QSqlDatabase>
#include "QFile"
#include "QDebug"

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString dbName = "lprDB";
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");

if( QFile::exists(dbName))
{
qDebug()<<"Data base exist....";
}
else {
qDebug()<<"Data base not exist creating new....";
db.setDatabaseName(dbName);
db.open(); // <<< Add this!

if(!db.isOpen()) {
qDebug() << "ERROR: could not open database";
}
qDebug() << "DB opened";
}

return a.exec();
}

关于c++ - QSqlDatabase 检查数据库是否已经存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31180403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com