MCPcopy Create free account
hub / github.com/awawa-dev/HyperHDR / getRecord

Method getRecord

sources/db/DBManager.cpp:242–287  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

240}
241
242bool DBManager::getRecord(const VectorPair& conditions, QVariantMap& results, const QStringList& tColumns, const QStringList& tOrder) const
243{
244 SqlDatabase* idb = getDB();
245 SqlQuery query(idb);
246
247 QString sColumns("*");
248 if (!tColumns.isEmpty())
249 sColumns = tColumns.join(", ");
250
251 QString sOrder("");
252 if (!tOrder.isEmpty())
253 {
254 sOrder = " ORDER BY ";
255 sOrder.append(tOrder.join(", "));
256 }
257 // prep conditions
258 QStringList prepCond;
259 QVariantList bindVal;
260 if (!conditions.isEmpty())
261 prepCond << " WHERE";
262
263 for (const auto& pair : conditions)
264 {
265 prepCond << pair.first + "=?";
266 bindVal << pair.second;
267 }
268 query.prepare(QString("SELECT %1 FROM %2%3%4").arg(sColumns, _table).arg(prepCond.join(" ")).arg(sOrder));
269 doAddBindValue(query, bindVal);
270
271 if (!query.exec())
272 {
273 Error(_log, "Failed to get record: '%s' in table: '%s' Error: %s", QSTRING_CSTR(prepCond.join(" ")), QSTRING_CSTR(_table), QSTRING_CSTR(idb->error()));
274 return false;
275 }
276
277 // go to first row
278 query.next();
279
280 SqlRecord rec = query.record();
281 for (unsigned int i = 0; i < rec.count(); i++)
282 {
283 results[rec.fieldName(i)] = rec.value(i);
284 }
285
286 return true;
287}
288
289bool DBManager::getRecords(QVector<QVariantMap>& results, const QStringList& tColumns, const QStringList& tOrder) const
290{

Callers

nothing calls this directly

Calls 9

isEmptyMethod · 0.80
execMethod · 0.80
recordMethod · 0.80
countMethod · 0.80
fieldNameMethod · 0.80
prepareMethod · 0.45
errorMethod · 0.45
nextMethod · 0.45
valueMethod · 0.45

Tested by

no test coverage detected