我制作了一个非常简单的程序来打开sqlite3数据库并在其中创建示例表。我写了这段代码:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSqlDatabase>
#include <QSqlTableModel>
#include <QSqlQuery>
#include <QSqlError>
#include <QMessageBox>
#include <QStandardPaths>
#include <QFile>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
QFile file(QStandardPaths::displayName(QStandardPaths::AppDataLocation) + "/library.db");
if(file.open(QFile::ReadWrite))
QMessageBox::information(this, "", "Successfully created database");
db.setDatabaseName(file.fileName());
db.setHostName("Test");
if(db.open())
{
QSqlQuery query;
if(!query.exec("create table if not exists test(name text not null)"))
QMessageBox::critical(this, "Oops!", "Unable to create table: " + query.lastError().text());
}
else
QMessageBox::critical(this, "Oops!", "Unable to open database: " + db.lastError().text());
}
MainWindow::~MainWindow()
{
delete ui;
}
我在调试模式(桌面工具包)中测试了代码,并且可以正常工作。然后,我在通用Windows平台32位套件(64位也不起作用)中尝试了调试模式。但是这一次,尽管代码可以很好地编译并且也部署了应用程序,但是并未创建数据库。它显示错误:“内存不足。打开数据库时出错”。我缺少关于UWP的东西吗?
我检查了项目的构建文件夹,并创建了否数据库。
我正在使用64位Windows 10