Ganz spontan, was mit so in der Sinn kommt:
// create DB object
DbObbject *person = new DbObject;
// setup object
person->setTable("t_person");
person->addField(DbObject::ShortString, "vorname");
person->addField(DbObject::ShortString, "name");
person->addField(DbObject::Date, "birthday");
person->addField(DbObject::Integer, "num_computers");
person->addField(DbObject::String, "comment");
// query
if(person->query("name", "Meyer")) {
   // print all fields
   qDebug() << person->toString();
   
   // modify object
   person->setValue("comment", "The answer is 23!");
   if(person->commit())
      qDebug() << "Update successfully!";
   else
      qDebug() << "Cannot update Meyer";
}
else
   qDebug() << "Meyer not found";
Mark sagt: Ja das klingt ja schon gar nicht so schlecht! Ich denke auf der Basis können wir los diskutieren.
addField war bei mir z.B. eine private Methode und sollte dann, eben nur im Konstuktor der Klasse Person verwendet werden,
so dass man bei new Person() dann immer die gleiche Datenstruktur bekommt. (…) (schreibe heute abend weiter …)
Jens sagt: Aha, verstehe, also so ala:
class Person : public DbObject
{
   public:
      Person();
      void doSomePersonStuff();
};
Person::Person()
{
   setTable("t_person");
   addField(DbObject::ShortString, "vorname");
   addField(DbObject::ShortString, "name");
   addField(DbObject::Date, "birthday");
   addField(DbObject::Integer, "num_computers");
   addField(DbObject::String, "comment");
}
Wie hast du bei Dir so Informationen wie z.B. „Datenbank-Type“ und „Datenbank-Verbindung“ hinterlegt? Statische Methoden im Basis-Objekt? Oder anders?