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);
}
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;
}
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;
}