7
votes

Base de données intégrée dans QT

J'ai une base de données SQLite pour mon application QT. Je suppose qu'il serait logique d'ajouter la base de données en tant que ressource.

Je ne peux pas obtenir mon application pour compiler avec la ressource intégrée. p>

connexion.h strong> p> xxx pré>

actifs.qrc strong> p> xxx pré>

ma base de données SQLite en ce moment est comme suit ceci P>

#-------------------------------------------------
#
# Project created by QtCreator 2010-11-21T03:18:17
#
#-------------------------------------------------

QT       += core gui

TARGET = TimePlotter
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp \
    time.cpp \
    clients.cpp \
    printTime.cpp

HEADERS  += mainwindow.h \
    time.h \
    clients.h \
    printTime.h \
    connection.h

FORMS    += mainwindow.ui \
    time.ui \
    clients.ui \
    printTime.ui

RESOURCES += \
    assets.qrc


4 commentaires

Pourriez-vous s'il vous plaît poster votre fichier .pro aussi? Cela aiderait à comprendre. Merci.


En outre, où se trouve votre actif.QRC dans votre arbre de projet?


J'ai ajouté le fichier .pro, merci de l'aide


Affiche le contenu .Pro répond à votre deuxième question? Dans les actifs réels de répertoire.QRC est à la base du dossier de projet. (c'est-à-dire les fichiers .h et .ui dans le même dossier que le .QRC)


3 Réponses :


12
votes

Même si vous vous résolvez de problèmes de compilation, l'intégration d'une base de données SQLite dans le fichier QRC ne fonctionnera pas. Voir par exemple La discussion dans le Forum du Centre Qt ou sur le Liste de diffusion QT-Intérêts . La meilleure solution serait iMho pour inclure une vidage d'une base de données dans le fichier QRC, créer une mémoire SQLite DB et reconstruire la base de données des instructions SQL de la ressource.


0 commentaires

1
votes

Il semble que vous avez supprimé ou renommé votre fichier db expédition.db3 et ajouté expéditionData.db3. Pour corriger ce problème de construction, vous devez supprimer votre dossier de construction et votre projet de reconstruction. Cela devrait résoudre votre problème de construction.

Instructions de déploiement de la base de données Vous pouvez lire ici: http://discussion.forum.nokia.com/forum/showthread.php?202894-Add-existing-sqlite-database-a-qt-project


0 commentaires

2
votes

i au moins savoir comment faire cela sur Mac OSX, où fonctionne le paramètre qmake_bundle_data. Pour Windows, consultez cette réponse .

  1. Créer un répertoire appelé "Data" dans votre répertoire de projet. LI>
  2. Mettez votre fichier de base de données là-bas. LI>
  3. Dans votre fichier .pro, ajoutez cette section: P>

    mac { Ressources.files = données Ressources.Path = Contenu / MacOS Qmake_bundle_data + = ressources } code> p> li>

  4. Maintenant, lorsque vous reconstruisez votre application, il sera situé dans le contenu du contenu / MacOS / Data. Ainsi, vous pouvez faire quelque chose comme ceci si votre base de données a été nommée Custom.db: P>

    db.setDatabaseName(QCoreApplication::applicationDirPath().append("/data/custom.db"));
    


0 commentaires