проблема с подключением Sqlite в мой проект в QT Creator

я пытаюсь подключить sqlite к qt creator там мой проект, и я сделал вот такой код:

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ui->boxGrade->hide();
    ui->inTask->hide();

    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("./myDB.db");

    if(!db.open()) {
        qDebug("Подключение к бд не установленна");
    }else {
        qDebug("бд подключена");
    }


}

я запускаю, и вижу: "бд подключена" но, когда я меняю "db.setDatabaseName("./myDB.db");" на "db.setDatabaseName("./mysdvdfjhvberlvDB.db");" (то-есть рандомное название бд) то пишит: "бд подключена" и это очень странно. Вот мой проект:

❯ tree TaskList
TaskList
├── build
│   └── Desktop-Debug
│       ├── main.o
│       ├── mainwindow.o
│       ├── Makefile
│       ├── moc_mainwindow.cpp
│       ├── moc_mainwindow.o
│       ├── moc_predefs.h
│       ├── TaskList
│       └── ui_mainwindow.h
├── main.cpp
├── mainwindow.cpp
├── mainwindow.h
├── mainwindow.ui
├── myDB.db
├── TaskList.pro
├── TaskList.pro.user
└── TaskList.pro.user.edfc540

3 directories, 16 files

можно заметить что тут только один myDB.db. ну и вот еще, если пригодиться:

CREATE TABLE "task" (
    "Name"  TEXT
)

код, который должен работать с бд:

void MainWindow::closeEvent(QCloseEvent *event)
{
    QString taskName = ui->inTask->text().trimmed();

    if (!taskName.isEmpty()) {
        QSqlQuery query;
        query.prepare("INSERT INTO tasks (name) VALUES (:name)");
        query.bindValue(":name", taskName);

        if (!query.exec()) {
            qDebug() << "Ошибка при вставке данных:" << query.lastError().text();
        } else {
            qDebug() << "Данные успешно добавлены в бд";
        }
    }

    QMainWindow::closeEvent(event);
}

тут он должен в бд записывать inTask, это QLineEdit


Ответы (1 шт):

Автор решения: Deniska SosiSka

Когда вы подключаетесь к несуществующей базе, SQLite создает новую базу данных с этим именем, поэтому вы видите сообщение бд подключена. Чтобы убедиться, что вы подключаетесь к существующей базе данных, вы можете проверить, существует ли таблица task в базе данных, используя метод QSqlDatabase::tables().

→ Ссылка