[gelöst] Sqlite DB in Resourcen Datei wird nicht geöffnet.
Verfasst: 14. März 2011 23:56
Hallo,
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
main.cpp
Ich kriege den Output:
Mit Verwendung eines alias genau das gleiche:
Gleicher Output in dieser Variante.
Inhalt des Verzeichnisses:
Warum funktioniert das so nicht?
Danke im Voraus.
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.