ich habe 2 Methoden:
Code: Alles auswählen
static bool _insert(const QList< QPair<QString, QVariant> >& params,
const QString &tableName = QString());
static bool _insert(const QHash<QString, QVariant>& params,
const QString &tableName = QString());
Der Grund der 2 Methoden ist, dass ich manchmal ein QHash bei Hand habe (wenn eine Sortierung nötig ist), ist keine Sortierung der Elemente nötig, komme ich mit einem QList daher...
Wie kann ich nun die Deklaration durchführen, ohne doppelten Code zu erhalten??
Ich habe es nunmal so gelöst, indem ich das QHash in ein QList umwadle und dieses der QList Methode weitergebe:
Code: Alles auswählen
bool dbAbstractModel::_insert(const QHash<QString, QVariant> ¶ms, const QString &tableName) {
// In eine Liste umwandeln...
QList<QPair<QString, QVariant> > list;
QHash<QString, QVariant>::iterator it;
for (it = params.begin(); it != params.end(); it++) {
list.append( QPair<it.key, it.value );
}
_insert(list, tableName);
}
Natürlich könnte ich nur QHash verwenden, aber ich will nicht sortieren, wenn es nicht nötig ist...
Oder kann ich als anternative dem QHash das sortieren einfach deaktivieren??
Gibts hier bessere Lösungen?