1
0
forked from BRT/arc
arc/database/dao/common_data_dao.cpp
trnsmkot b66f5c2851 Integrate device data management with database access
Added SQLite database support for managing device information and common data. Implemented DAOs for handling device and common data operations, such as inserting/updating devices and tracking the last scan time. Enhanced `DeviceScreener` to read device info, update database records, and take screenshots.
2025-04-17 22:10:11 +07:00

48 lines
1.5 KiB
C++

#include "common_data_dao.h"
#include "../database_manager.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;
}