Я сделал очень простую программу, чтобы открыть базу данных 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), и он работал.Затем я попробовал режим отладки в 32-битном наборе универсальной платформы Windows (64-битная тоже не работает).Но на этот раз, хотя код компилируется нормально и приложение также развернуто, база данных не создается.И это показывает ошибку: «недостаточно памяти. Ошибка открытия базы данных».Я что-то упускаю из UWP?
Я проверил папку сборки проекта, и база данных NO была создана.
Я использую 64-битные окна 10