1
0
forked from BRT/arc
arc/database/dao/CommonDataDAO.cpp
slava 4d9889db46 Refactor UI and database logic for device management
Replaced `MyWindow` with `MainWindow` featuring dynamic device widgets. Introduced `DeviceInfo`, `DeviceDAO`, and improved database interaction. Added flow layout and refactored image handling for better performance.
2025-04-18 16:39:13 +07:00

48 lines
1.5 KiB
C++

#include "CommonDataDAO.h"
#include "DatabaseManager.h"
#include <QSqlQuery>
#include <QSqlError>
QDateTime CommonDataDAO::getLastScan() {
QSqlQuery query(DatabaseManager::instance().database());
query.prepare("SELECT lastScan FROM common_data WHERE id = 1");
if (!query.exec()) {
qWarning() << "Ошибка при получении lastScan:" << query.lastError().text();
return {};
}
if (query.next()) {
const QString timestamp = query.value(0).toString();
return QDateTime::fromString(timestamp, Qt::ISODate);
}
return {};
}
bool CommonDataDAO::updateLastScan(const QDateTime& newTime) {
QSqlQuery query(DatabaseManager::instance().database());
query.prepare("UPDATE common_data SET lastScan = :time WHERE id = 1");
query.bindValue(":time", newTime.toString(Qt::ISODate));
if (!query.exec()) {
qWarning() << "Ошибка при обновлении lastScan:" << query.lastError().text();
return false;
}
if (query.numRowsAffected() == 0) {
QSqlQuery insertQuery(DatabaseManager::instance().database());
insertQuery.prepare("INSERT INTO common_data (id, lastScan) VALUES (1, :time)");
insertQuery.bindValue(":time", newTime.toString(Qt::ISODate));
if (!insertQuery.exec()) {
qWarning() << "Ошибка при INSERT lastScan:" << insertQuery.lastError().text();
return false;
}
}
return true;
}