Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Qt widgets application a SQLite

Zdravím,

dělám aplikaci v Qt pomocí widgets application. Do souboru MainWindow.cpp jsem si vytvořil metodu pro vytvoření databáze, připojení se k ní a pro vytvoření tabulky v ní. Kód se zkompiloval, aplikace se spustila, jenže soubor s databází nikde nevidím. Ani v cestě, kterou jsem zadal. Může mi prosím někdo poradit kde ho mám hledat, popřípadě nejlépe jak na to, aby se soubor s db vytvořil přímo ve složce projektu? Díky.

Kód metody pro vytvoření db vypadá takto:

void MainWindow::DatabaseConnect()
{
    const QString DRIVER("QSQLITE");
    if(QSqlDatabase::isDriverAvailable(DRIVER))
    {
        QSqlDatabase db = QSqlDatabase::addDatabase(DRIVER);
        db.setDatabaseName(QApplication::applicationDirPath() + "/database/tryDB.sqlite");

        if(!db.open())
        {
            qWarning() << "MainWindow::DatabaseConnect - ERROR: " << db.lastError().text();
        }
        else
        {
            qWarning() << "MainWindow::DatabaseConnection - ERROR: no driver " << DRIVER << " available";
        }
    }
}

A pro vytvoření tabulky v db:

void MainWindow::DatabaseInit()
{
    QSqlQuery query("CREATE TABLE Album (id INTEGER PRIMARY KEY, autor TEXT, jmenoAlba TEXT, rokVydani INTEGER, zanr TEXT, seznamSkladeb TEXT)");

    if(!query.isActive())
    {
        qWarning() << "MainWindow::DatabaseInit - ERROR: " << query.lastError().text();
    }
}
Předmět Autor Datum
A jsi si opravdu jistý, že cokoliv z toho vytváří databázi?
Wikan 18.12.2017 17:44
Wikan
Nejsem, ale zadávám tam cestu a pak ověřuji, zda je otevřená a dokonce do ní tvořím tabulku, tak byc…
Dupla 18.12.2017 17:53
Dupla
Vidím tam jenom, že si vytvoříš query, ale už ne, že jsi i vykonáš.
Wikan 18.12.2017 17:56
Wikan
I když tam přidám query.exec(); tak se nic neděje.
Dupla 18.12.2017 18:07
Dupla
Což ale bude nejspíš právě důsledek toho, že ta databáze neexistuje a ten tvůj kód ji nevytváří.
Wikan 18.12.2017 18:21
Wikan
A jak ji mám teda vytvořit?
Dupla 18.12.2017 18:24
Dupla
Nějak takto: QString path = "path"; QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");//not db…
host 18.12.2017 18:31
host
Ano, to už jsem taky našel a zkoušel, ale databáze se pořád nevytvořila. poslední
Dupla 18.12.2017 18:45
Dupla

Zpět do poradny Odpovědět na původní otázku Nahoru