Seite 1 von 1

[SQLITE Database Problem] Verwendung eines Active Record!

Verfasst: 17. August 2009 13:20
von flomll
Hallo Leute,

ich bin schon am verzweifeln. Ich muss für meine Bachelorarbeit ein Software Design entwerfen. In meinem Programm möchte ich Qt verwenden und habe mir das Active Record Pattern - http://en.wikipedia.org/wiki/Active_record_pattern - ausgesucht um die Datenbank abzubilden.


Jetzt will ich aber für alle Active Record Objekte das selbe QSqlDatabase Objekt verwenden. Deshalb möchte ich ein globales db Objekt machen und eine Referenz jedem erstellen Pub Objekt mitgeben.

Code: Alles auswählen

QSqlDatabase * db = new QSqlDatabase;
QList<Pub *> list;

while(..)// read all database entries
{
    Pub * pub = new Pub(&db, id);
    list.append(pub);
}

Leider wird nach jedem Pub * pub = new Pub(&db, id); eine neue Standard Verbindung zur Datenbank hergestellt und somit die alte Verbindung zerstört.

Es gibt in meinem Model für jede DB-Tabelle eine Objekt und diese Objekte werden von einem Table-Objekt abgeleitet. Das Table Objekt sieht folgend aus:

Code: Alles auswählen

class Table
{
    Table(); // baut verbindung mit db auf.
    Table();// schließt verbindung mit db.

QSqlDatabase * db;
}
Ein Active Record Objekt sieht folgend aus: pub

Code: Alles auswählen

class Pub : public Table
{
    Pub(QSqlDatabae * db, uint id);
..
    void load();
    void record();
    void update();
    void del();

public:
    uint pubtypeID;
    uint pubID;
    uint catID;
    QString fileurl;
}
Kann mir jemand sagen wie ich das QSqlDatabase Objekt mit SQLITE für so ein Model am besten verwenden kann?