add function for UPDATE, needs to be edited

This commit is contained in:
Ondřej Fischer 2019-11-14 14:46:44 +01:00
parent 8821dfc9b2
commit 34d112062c
2 changed files with 35 additions and 0 deletions

View File

@ -141,6 +141,38 @@ QSqlQuery DatabaseUtils::insertIntoTable(const DatabaseTable *table, const QStri
return res;
}
QSqlQuery DatabaseUtils::updateTable(const DatabaseTable *table, const QString table_name) const
{
QString columnsAndValues;
// tepmporary, for edit ( add one more parameter to func sth like QList with conditions
QString conditions;
conditions = "id = :id";
QVariantMap valueMap = table->toVariantMap();
auto keys = valueMap.keys();
for (auto key : keys) {
if (!columnsAndValues.isEmpty()) {
columnsAndValues += ", ";
}
columnsAndValues += key + "= :" + key;
}
QSqlQuery query(mDatabaseManager->database());
QString queryText = QString("UPDATE %1 SET %2 WHERE %3 );").arg(table_name).arg(columnsAndValues).arg(conditions);
query.prepare(queryText);
for (auto key : keys ) {
auto value = valueMap.value(key);
query.bindValue(":"+key, value);
}
QSqlQuery res = mDatabaseManager->executeQuery(query);
return res;
}
QList<QMap<QString, QVariant>> DatabaseUtils::listMapFromQuery(QSqlQuery query) const
{

View File

@ -22,6 +22,9 @@ public:
QSqlQuery createTable(const DatabaseTable *table, const QString table_name) const;
QSqlQuery insertIntoTable(const DatabaseTable *table, const QString table_name) const;
QSqlQuery updateTable(const DatabaseTable *table, const QString table_name) const;
QList<QMap<QString, QVariant>> listMapFromQuery(QSqlQuery query) const;
QString sqlType() const;