diff --git a/src/serversdk/databaseutils.cpp b/src/serversdk/databaseutils.cpp index 5de8838..57e2180 100644 --- a/src/serversdk/databaseutils.cpp +++ b/src/serversdk/databaseutils.cpp @@ -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> DatabaseUtils::listMapFromQuery(QSqlQuery query) const { diff --git a/src/serversdk/databaseutils.h b/src/serversdk/databaseutils.h index 58572f5..125441d 100644 --- a/src/serversdk/databaseutils.h +++ b/src/serversdk/databaseutils.h @@ -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> listMapFromQuery(QSqlQuery query) const; QString sqlType() const;