1
0
forked from BRT/arc
arc/database/dao/common_data_dao.cpp
slava 1672216bdc 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;
}