ich will eine Sqlite Datenbank in meinem Programm verwenden. Diese will ich mittels des Qt Resource Systems einbinden. Beim öffnen erhalte ich allerdings die Meldung: "unable to open database file Error opening database"
Hier ein Minimalbeispiel:
resource_minExample.pro
Code: Alles auswählen
# -------------------------------------------------
# Project created by QtCreator 2011-03-14T23:07:50
# -------------------------------------------------
QT += sql
QT -= gui
TARGET = resource_minExample
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
RESOURCES += res.qrc
Code: Alles auswählen
#include <QtCore/QCoreApplication>
#include <QSqlDatabase>
#include <QDebug>
#include <QSqlError>
#include <QFile>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(":/db.sqlite");
QFile dbFile(":/db.sqlite");
if (!dbFile.exists())
qDebug() << "Datei nicht gefunden";
else
{
db.setDatabaseName(":/db.sqlite");
qDebug() << "Datei wurde gefunden";
}
if(!db.open())
qDebug() << db.lastError().text();
else qDebug() << "Datenbank konnte geöffnet werden";
db.setDatabaseName("./db.sqlite");
if(!db.open())
qDebug() << db.lastError().text();
else qDebug() << "Datenbank konnte geöffnet werden";
return a.exec();
}
res.qrcStarte resource_minExample...
Datei wurde gefunden
"unable to open database file Error opening database"
Datenbank konnte geöffnet werden
Code: Alles auswählen
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>db.sqlite</file>
</qresource>
</RCC>
Code: Alles auswählen
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file alias = "dbalias.sqlite">db.sqlite</file>
</qresource>
</RCC>
Code: Alles auswählen
[...]
db.setDatabaseName(":/dbalias.sqlite");
[...]
Inhalt des Verzeichnisses:
Code: Alles auswählen
-rw-r--r-- 1 x x 8192 2011-03-14 22:29 db.sqlite
-rw-r--r-- 1 x x 519 2011-03-14 23:25 main.cpp
-rw-r--r-- 1 x x 299 2011-03-14 23:09 resource_minExample.pro
-rw-r--r-- 1 x x 105 2011-03-14 23:30 res.qrc
Danke im Voraus.