我做了一个非常简单的程序来打开一个 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;
}
我在调试模式(dektop 套件)下测试了代码,它工作正常。然后,我尝试了通用 Windows 平台 32 位套件中的调试模式(64 位也不起作用)。但是这一次,虽然代码编译正常并且应用程序也已部署,但没有创建数据库。它显示错误:“内存不足。打开数据库时出错”。我缺少关于 UWP 的东西吗?
我检查了项目的构建文件夹,没有创建数据库。
我正在使用 64 位 Windows 10