0

我做了一个非常简单的程序来打开一个 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

4

0 回答 0