Fix buidling query
This commit is contained in:
+10
-7
@@ -164,6 +164,7 @@ void FITSFileModel::prepareQuery()
|
||||
QStringList where;
|
||||
QString sql = m_columns.size() ? "SELECT f.file," : "SELECT f.file";
|
||||
QVariantList bindValues;
|
||||
QVariantList bindValuesJoin;
|
||||
for(int i=0; i<m_value.size(); i++)
|
||||
{
|
||||
if(m_key[i] == "file")
|
||||
@@ -195,9 +196,9 @@ void FITSFileModel::prepareQuery()
|
||||
}
|
||||
else
|
||||
{
|
||||
join += QString(" JOIN fits_headers AS s%1 ON f.id=s%1.id_file AND s%1.key=? AND s%1.value LIKE ?").arg(i);
|
||||
bindValues.append(m_key[i]);
|
||||
bindValues.append(m_value[i]);
|
||||
join += QString(" JOIN fits_headers AS s%1 ON f.id=s%1.id_file AND s%1.key=? AND s%1.value LIKE ? ").arg(i);
|
||||
bindValuesJoin.append(m_key[i]);
|
||||
bindValuesJoin.append(m_value[i]);
|
||||
}
|
||||
}
|
||||
int i=0;
|
||||
@@ -205,7 +206,7 @@ void FITSFileModel::prepareQuery()
|
||||
{
|
||||
cols += QString("GROUP_CONCAT(h%1.value) AS h%1_value,").arg(i);
|
||||
join += QString(" LEFT JOIN fits_headers AS h%1 ON f.id=h%1.id_file AND h%1.key=?").arg(i);
|
||||
bindValues.append(column);
|
||||
bindValuesJoin.append(column);
|
||||
i++;
|
||||
}
|
||||
cols.chop(1);
|
||||
@@ -217,11 +218,13 @@ void FITSFileModel::prepareQuery()
|
||||
|
||||
QSqlQuery query(m_database->db());
|
||||
query.prepare(sql);
|
||||
for(int i = 0; i < bindValues.size(); i++)
|
||||
query.bindValue(i, bindValues[i]);
|
||||
for(auto &val : bindValuesJoin)
|
||||
query.addBindValue(val);
|
||||
for(auto &val : bindValues)
|
||||
query.addBindValue(val);
|
||||
|
||||
if(!query.exec())
|
||||
qWarning() << "Failed to exectute query" << query.lastQuery();
|
||||
qWarning() << "Failed to exectute query" << query.lastQuery() << bindValuesJoin << bindValues;
|
||||
setQuery(std::move(query));
|
||||
|
||||
setHeaderData(0, Qt::Horizontal, tr("File name"));
|
||||
|
||||
Reference in New Issue
Block a user