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.
48 lines
1.5 KiB
C++
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;
|
|
}
|