mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2023-10-10 13:36:59 +02:00
DBManager: ORDER BY parameter added to getRecord(s) (#770)
-> All instances are now sorted in ascending order using the instance ID -> The web interface gets an incorrect instance order, which causes further problems
This commit is contained in:
parent
8c188d71d9
commit
9110b3e690
@ -83,18 +83,20 @@ public:
|
|||||||
/// @param[in] conditions condition to search for (WHERE)
|
/// @param[in] conditions condition to search for (WHERE)
|
||||||
/// @param[out] results results of query
|
/// @param[out] results results of query
|
||||||
/// @param[in] tColumns target columns to search in (optional) if not provided returns all columns
|
/// @param[in] tColumns target columns to search in (optional) if not provided returns all columns
|
||||||
|
/// @param[in] tOrder target order columns with order by ASC/DESC (optional)
|
||||||
/// @return True on success else false
|
/// @return True on success else false
|
||||||
///
|
///
|
||||||
bool getRecord(const VectorPair& conditions, QVariantMap& results, const QStringList& tColumns = QStringList()) const;
|
bool getRecord(const VectorPair& conditions, QVariantMap& results, const QStringList& tColumns = QStringList(), const QStringList& tOrder = QStringList()) const;
|
||||||
|
|
||||||
///
|
///
|
||||||
/// @brief Get data of multiple records, you need to specify the columns. This search is without conditions. Good to grab all data from db
|
/// @brief Get data of multiple records, you need to specify the columns. This search is without conditions. Good to grab all data from db
|
||||||
/// @param[in] conditions condition to search for (WHERE)
|
/// @param[in] conditions condition to search for (WHERE)
|
||||||
/// @param[out] results results of query
|
/// @param[out] results results of query
|
||||||
/// @param[in] tColumns target columns to search in (optional) if not provided returns all columns
|
/// @param[in] tColumns target columns to search in (optional) if not provided returns all columns
|
||||||
|
/// @param[in] tOrder target order columns with order by ASC/DESC (optional)
|
||||||
/// @return True on success else false
|
/// @return True on success else false
|
||||||
///
|
///
|
||||||
bool getRecords(QVector<QVariantMap>& results, const QStringList& tColumns = QStringList()) const;
|
bool getRecords(QVector<QVariantMap>& results, const QStringList& tColumns = QStringList(), const QStringList& tOrder = QStringList()) const;
|
||||||
|
|
||||||
///
|
///
|
||||||
/// @brief Delete a record determined by conditions
|
/// @brief Delete a record determined by conditions
|
||||||
|
@ -122,7 +122,7 @@ public:
|
|||||||
inline QVector<QVariantMap> getAllInstances(const bool& justEnabled = false)
|
inline QVector<QVariantMap> getAllInstances(const bool& justEnabled = false)
|
||||||
{
|
{
|
||||||
QVector<QVariantMap> results;
|
QVector<QVariantMap> results;
|
||||||
getRecords(results);
|
getRecords(results, QStringList(), QStringList() << "instance ASC");
|
||||||
if(justEnabled)
|
if(justEnabled)
|
||||||
{
|
{
|
||||||
for (auto it = results.begin(); it != results.end();)
|
for (auto it = results.begin(); it != results.end();)
|
||||||
|
@ -185,7 +185,7 @@ bool DBManager::updateRecord(const VectorPair& conditions, const QVariantMap& co
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DBManager::getRecord(const VectorPair& conditions, QVariantMap& results, const QStringList& tColumns) const
|
bool DBManager::getRecord(const VectorPair& conditions, QVariantMap& results, const QStringList& tColumns, const QStringList& tOrder) const
|
||||||
{
|
{
|
||||||
QSqlDatabase idb = getDB();
|
QSqlDatabase idb = getDB();
|
||||||
QSqlQuery query(idb);
|
QSqlQuery query(idb);
|
||||||
@ -195,6 +195,12 @@ bool DBManager::getRecord(const VectorPair& conditions, QVariantMap& results, co
|
|||||||
if(!tColumns.isEmpty())
|
if(!tColumns.isEmpty())
|
||||||
sColumns = tColumns.join(", ");
|
sColumns = tColumns.join(", ");
|
||||||
|
|
||||||
|
QString sOrder("");
|
||||||
|
if(!tOrder.isEmpty())
|
||||||
|
{
|
||||||
|
sOrder = " ORDER BY ";
|
||||||
|
sOrder.append(tOrder.join(", "));
|
||||||
|
}
|
||||||
// prep conditions
|
// prep conditions
|
||||||
QStringList prepCond;
|
QStringList prepCond;
|
||||||
QVariantList bindVal;
|
QVariantList bindVal;
|
||||||
@ -206,7 +212,7 @@ bool DBManager::getRecord(const VectorPair& conditions, QVariantMap& results, co
|
|||||||
prepCond << pair.first+"=?";
|
prepCond << pair.first+"=?";
|
||||||
bindVal << pair.second;
|
bindVal << pair.second;
|
||||||
}
|
}
|
||||||
query.prepare(QString("SELECT %1 FROM %2 %3").arg(sColumns,_table).arg(prepCond.join(" ")));
|
query.prepare(QString("SELECT %1 FROM %2%3%4").arg(sColumns,_table).arg(prepCond.join(" ")).arg(sOrder));
|
||||||
doAddBindValue(query, bindVal);
|
doAddBindValue(query, bindVal);
|
||||||
|
|
||||||
if(!query.exec())
|
if(!query.exec())
|
||||||
@ -227,7 +233,7 @@ bool DBManager::getRecord(const VectorPair& conditions, QVariantMap& results, co
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DBManager::getRecords(QVector<QVariantMap>& results, const QStringList& tColumns) const
|
bool DBManager::getRecords(QVector<QVariantMap>& results, const QStringList& tColumns, const QStringList& tOrder) const
|
||||||
{
|
{
|
||||||
QSqlDatabase idb = getDB();
|
QSqlDatabase idb = getDB();
|
||||||
QSqlQuery query(idb);
|
QSqlQuery query(idb);
|
||||||
@ -237,7 +243,14 @@ bool DBManager::getRecords(QVector<QVariantMap>& results, const QStringList& tCo
|
|||||||
if(!tColumns.isEmpty())
|
if(!tColumns.isEmpty())
|
||||||
sColumns = tColumns.join(", ");
|
sColumns = tColumns.join(", ");
|
||||||
|
|
||||||
query.prepare(QString("SELECT %1 FROM %2").arg(sColumns,_table));
|
QString sOrder("");
|
||||||
|
if(!tOrder.isEmpty())
|
||||||
|
{
|
||||||
|
sOrder = " ORDER BY ";
|
||||||
|
sOrder.append(tOrder.join(", "));
|
||||||
|
}
|
||||||
|
|
||||||
|
query.prepare(QString("SELECT %1 FROM %2%3").arg(sColumns,_table,sOrder));
|
||||||
|
|
||||||
if(!query.exec())
|
if(!query.exec())
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user