
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();
}
}
A jsi si opravdu jistý, že cokoliv z toho vytváří databázi?
Nejsem, ale zadávám tam cestu a pak ověřuji, zda je otevřená a dokonce do ní tvořím tabulku, tak bych čekal, že někde je uložený soubor s touto db.
Vidím tam jenom, že si vytvoříš query, ale už ne, že jsi i vykonáš.
I když tam přidám query.exec(); tak se nic neděje.
Což ale bude nejspíš právě důsledek toho, že ta databáze neexistuje a ten tvůj kód ji nevytváří.
A jak ji mám teda vytvořit?
Nějak takto:
Tady je dokumentace:
https://doc.qt.io/archives/3.3/designer-manual-8.html
Ano, to už jsem taky našel a zkoušel, ale databáze se pořád nevytvořila.