#include "LDBTool.h"
|
#include <basic/debug/Debug.h>
|
//#include <QMessageBox>
|
#include <QMutexLocker>
|
#include <QDebug>
|
#include <basic/util/app/AppConfig.h>
|
|
LDBTool::LDBTool() {
|
connectDB();
|
}
|
|
LDBTool::~LDBTool() {
|
delete m_pModel;
|
}
|
|
void LDBTool::connectDB() {
|
m_db = QSqlDatabase::addDatabase("QSQLITE");
|
m_db.setDatabaseName("./config.db");
|
|
if (m_db.open()) {
|
m_pModel = new QSqlTableModel(NULL, m_db);
|
// qDebug("Database opened successfully");
|
DBG("Database opened successfully");
|
} else {
|
qCritical("Can't open database: %s(%s)",
|
m_db.lastError().text().toLocal8Bit().data(),
|
qt_error_string().toLocal8Bit().data());
|
}
|
}
|
|
bool LDBTool::insertDeviceTable(Record_Storage_Dev deviceRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("storage_dev");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
|
QSqlRecord rec = pModel.record();
|
rec.setGenerated("id", false);
|
// rec.setValue("id",deviceRec.n_id);
|
rec.setValue("storage_dev_id", deviceRec.str_storage_dev_id);
|
rec.setValue("dev_name", deviceRec.str_dev_name);
|
rec.setValue("total_chn", deviceRec.n_total_chn);
|
rec.setValue("all_chn_num", deviceRec.str_all_chn_num);
|
rec.setValue("addr", deviceRec.str_addr);
|
rec.setValue("longitude", deviceRec.str_longitude);
|
rec.setValue("latitude", deviceRec.str_latitude);
|
rec.setValue("ip", deviceRec.str_ip);
|
rec.setValue("port", deviceRec.n_port);
|
rec.setValue("username", deviceRec.str_username);
|
rec.setValue("password", deviceRec.str_password);
|
rec.setValue("start_time", deviceRec.tim_start_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec.setValue("duration", deviceRec.n_duration);
|
rec.setValue("brand", deviceRec.str_brand);
|
rec.setValue("reserved", deviceRec.str_reserved);
|
|
pModel.insertRecord(-1, rec);//TODO
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("insertDeviceTable err ,Database Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("insertLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
|
bool LDBTool::deleteDeviceTable(QString str_storage_dev_id) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("storage_dev");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1'").arg(str_storage_dev_id));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
|
if (rowCount >= 1) {
|
for (int i = 0; i < rowCount; i++) {
|
pModel.removeRow(i);//TODO
|
}
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("deleteLDeviceTable err ,Database Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("deleteLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::deleteDeviceTableAndChnAndSdk(QString str_storage_dev_id) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel_dev(NULL, m_db);
|
pModel_dev.setTable("storage_dev");
|
pModel_dev.setFilter(QObject::tr("storage_dev_id = '%1'").arg(str_storage_dev_id));
|
pModel_dev.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel_dev.select();
|
|
QSqlTableModel pModel_chn(NULL, m_db);
|
pModel_chn.setTable("cam_chn");
|
pModel_chn.setFilter(QObject::tr("storage_dev_id = '%1'").arg(str_storage_dev_id));
|
pModel_chn.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel_chn.select();
|
|
QSqlTableModel pModel_sdk(NULL, m_db);
|
pModel_sdk.setTable("chn_sdk");
|
pModel_sdk.setFilter(QObject::tr("storage_dev_id = '%1'").arg(str_storage_dev_id));
|
pModel_sdk.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel_sdk.select();
|
|
int rowCount_dev = pModel_dev.rowCount();
|
|
if (rowCount_dev >= 1) {
|
for (int i = 0; i < rowCount_dev; i++) {
|
pModel_dev.removeRow(i);//TODO
|
}
|
}
|
|
int rowCount_chn = pModel_chn.rowCount();
|
|
if (rowCount_chn >= 1) {
|
for (int i = 0; i < rowCount_chn; i++) {
|
pModel_chn.removeRow(i);//TODO
|
}
|
}
|
|
int rowCount_sdk = pModel_sdk.rowCount();
|
|
if (rowCount_sdk >= 1) {
|
for (int i = 0; i < rowCount_sdk; i++) {
|
pModel_sdk.removeRow(i);//TODO
|
}
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel_dev.submitAll() && \
|
pModel_chn.submitAll() && \
|
pModel_sdk.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("deleteLDeviceTable err ,Database pModel_dev or pModel_chn or pModel_sdk Error: " \
|
<< pModel_dev.lastError().text().toStdString() \
|
<< pModel_chn.lastError().text().toStdString() \
|
<< pModel_sdk.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("deleteLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::updateDeviceTable(Record_Storage_Dev deviceRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("storage_dev");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1'").arg(deviceRec.str_storage_dev_id));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
QSqlRecord rec = pModel.record(0);
|
// rec.setGenerated("id", false);
|
rec.setValue("storage_dev_id", deviceRec.str_storage_dev_id);
|
rec.setValue("dev_name", deviceRec.str_dev_name);
|
rec.setValue("total_chn", deviceRec.n_total_chn);
|
rec.setValue("all_chn_num", deviceRec.str_all_chn_num);
|
rec.setValue("addr", deviceRec.str_addr);
|
rec.setValue("longitude", deviceRec.str_longitude);
|
rec.setValue("latitude", deviceRec.str_latitude);
|
rec.setValue("ip", deviceRec.str_ip);
|
rec.setValue("port", deviceRec.n_port);
|
rec.setValue("username", deviceRec.str_username);
|
rec.setValue("password", deviceRec.str_password);
|
rec.setValue("start_time", deviceRec.tim_start_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec.setValue("duration", deviceRec.n_duration);
|
rec.setValue("brand", deviceRec.str_brand);
|
rec.setValue("reserved", deviceRec.str_reserved);
|
|
int rowCount = pModel.rowCount();
|
if (rowCount == 0) {
|
pModel.insertRecord(-1, rec);
|
} else if (rowCount > 0) {
|
pModel.setRecord(0, rec);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable err ,Database Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("updateLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
int LDBTool::searchDeviceNumber(void) {
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("storage_dev");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
|
return rowCount;
|
}
|
|
std::list<Record_Storage_Dev> LDBTool::searchDeviceTableAll(void) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
std::list<Record_Storage_Dev> lst;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("storage_dev");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
for (int i = 0; i < rowCount; ++i) {
|
Record_Storage_Dev lDeviceRec;
|
QSqlRecord rec = pModel.record(i);
|
|
lDeviceRec.n_id = rec.value("id").toInt();
|
lDeviceRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
lDeviceRec.str_dev_name = rec.value("dev_name").toString();
|
lDeviceRec.n_total_chn = rec.value("total_chn").toInt();
|
lDeviceRec.str_all_chn_num = rec.value("all_chn_num").toString();
|
lDeviceRec.str_addr = rec.value("addr").toString();
|
lDeviceRec.str_longitude = rec.value("longitude").toString();
|
lDeviceRec.str_latitude = rec.value("latitude").toString();
|
lDeviceRec.str_ip = rec.value("ip").toString();
|
lDeviceRec.n_port = rec.value("port").toInt();
|
lDeviceRec.str_username = rec.value("username").toString();
|
lDeviceRec.str_password = rec.value("password").toString();
|
lDeviceRec.tim_start_time = QDateTime::fromString(rec.value("start_time").toString(),
|
"yyyy-MM-dd hh:mm:ss");
|
lDeviceRec.n_duration = rec.value("duration").toInt();
|
lDeviceRec.str_brand = rec.value("brand").toString();
|
lDeviceRec.str_reserved = rec.value("reserved").toString();
|
lst.push_back(lDeviceRec);
|
}
|
}
|
|
return lst;
|
|
}
|
|
Record_Storage_Dev LDBTool::searchDeviceTableByDeviceId(QString strDeviceId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
Record_Storage_Dev lDeviceRec;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("storage_dev");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1'").arg(strDeviceId));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
QSqlRecord rec = pModel.record(0);
|
lDeviceRec.n_id = rec.value("id").toInt();
|
lDeviceRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
lDeviceRec.str_dev_name = rec.value("dev_name").toString();
|
lDeviceRec.n_total_chn = rec.value("total_chn").toInt();
|
lDeviceRec.str_all_chn_num = rec.value("all_chn_num").toString();
|
lDeviceRec.str_addr = rec.value("addr").toString();
|
lDeviceRec.str_longitude = rec.value("longitude").toString();
|
lDeviceRec.str_latitude = rec.value("latitude").toString();
|
lDeviceRec.str_ip = rec.value("ip").toString();
|
lDeviceRec.n_port = rec.value("port").toInt();
|
lDeviceRec.str_username = rec.value("username").toString();
|
lDeviceRec.str_password = rec.value("password").toString();
|
lDeviceRec.tim_start_time = QDateTime::fromString(rec.value("start_time").toString(), "yyyy-MM-dd hh:mm:ss");
|
lDeviceRec.n_duration = rec.value("duration").toInt();
|
lDeviceRec.str_brand = rec.value("brand").toString();
|
lDeviceRec.str_reserved = rec.value("reserved").toString();
|
}
|
|
return lDeviceRec;
|
}
|
|
int LDBTool::searchDurationByDeviceId(QString strDeviceId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
int nDuration = 1;//没查到就默认是1小时
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("storage_dev");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1'").arg(strDeviceId));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
QSqlRecord rec = pModel.record(0);
|
nDuration = rec.value("duration").toInt();
|
}
|
|
return nDuration;
|
}
|
|
//cam_dev==========================
|
///
|
/// \brief LDBTool::insertCamDevTable
|
/// \param channelRec
|
/// \return
|
//=============================
|
bool LDBTool::insertCamDevTable(Record_Cam_Dev channelRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_dev");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
|
QSqlRecord rec = pModel.record();
|
rec.setGenerated("id", false);
|
rec.setValue("cam_dev_id", channelRec.str_cam_dev_id);
|
rec.setValue("name", channelRec.str_name);
|
rec.setValue("addr", channelRec.str_addr);
|
rec.setValue("longitude", channelRec.str_longitude);
|
rec.setValue("latitude", channelRec.str_latitude);
|
rec.setValue("ip", channelRec.str_ip);
|
rec.setValue("port", channelRec.n_port);
|
rec.setValue("username", channelRec.str_username);
|
rec.setValue("password", channelRec.str_password);
|
rec.setValue("brand", channelRec.str_brand);
|
rec.setValue("reserved", channelRec.str_reserved);
|
rec.setValue("type", channelRec.type);
|
|
pModel.insertRecord(-1, rec);//TODO
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("insertLDeviceTable err ,Database Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("insertLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::deleteCamDevandSdkByCamID(QString strCamId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel_cam(NULL, m_db);
|
pModel_cam.setTable("cam_dev");
|
pModel_cam.setFilter(QObject::tr("cam_dev_id = '%1'").arg(strCamId));
|
pModel_cam.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel_cam.select();
|
|
// QSqlTableModel pModel_sdk(NULL, m_db);
|
// pModel_sdk.setTable("cam_sdk");
|
// pModel_sdk.setFilter(QObject::tr("cam_dev_id = '%1'").arg(strCamId));
|
// pModel_sdk.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
// pModel_sdk.select();
|
|
QSqlTableModel pModel_sdk(NULL, m_db);
|
pModel_sdk.setTable("sdk_rule");
|
pModel_sdk.setFilter(QObject::tr("cam_id = '%1'").arg(strCamId));
|
pModel_sdk.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel_sdk.select();
|
|
QSqlTableModel pModel_week(NULL, m_db);
|
pModel_week.setTable("rule_week");
|
pModel_week.setFilter(QObject::tr("camera_id = '%1'").arg(strCamId));
|
pModel_week.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel_week.select();
|
|
int rowCount_cam = pModel_cam.rowCount();
|
if (rowCount_cam >= 1) {
|
for (int i = 0; i < rowCount_cam; i++) {
|
pModel_cam.removeRow(i);//TODO
|
}
|
}
|
|
int rowCount_sdk = pModel_sdk.rowCount();
|
if (rowCount_sdk >= 1) {
|
for (int i = 0; i < rowCount_sdk; i++) {
|
pModel_sdk.removeRow(i);//TODO
|
}
|
}
|
|
int rowCount_week = pModel_week.rowCount();
|
if (rowCount_week >= 1) {
|
for (int i = 0; i < rowCount_week; i++) {
|
pModel_week.removeRow(i);//TODO
|
}
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel_cam.submitAll() && \
|
pModel_sdk.submitAll() && pModel_week.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("deleteLDeviceTable err ,Database Error: " \
|
<< pModel_cam.lastError().text().toStdString() \
|
<< pModel_sdk.lastError().text().toStdString() \
|
<< pModel_week.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("deleteLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::updateCamDevTable(Record_Cam_Dev camRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_dev");
|
pModel.setFilter(
|
QObject::tr("cam_dev_id = '%1'").arg(camRec.str_cam_dev_id));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
QSqlRecord rec = pModel.record(0);
|
rec.setValue("cam_dev_id", camRec.str_cam_dev_id);
|
rec.setValue("name", camRec.str_name);
|
rec.setValue("addr", camRec.str_addr);
|
rec.setValue("longitude", camRec.str_longitude);
|
rec.setValue("latitude", camRec.str_latitude);
|
rec.setValue("ip", camRec.str_ip);
|
rec.setValue("port", camRec.n_port);
|
rec.setValue("username", camRec.str_username);
|
rec.setValue("password", camRec.str_password);
|
rec.setValue("brand", camRec.str_brand);
|
rec.setValue("reserved", camRec.str_reserved);
|
|
int rowCount = pModel.rowCount();
|
if (rowCount == 0) {
|
pModel.insertRecord(-1, rec);
|
} else if (rowCount > 0) {
|
pModel.setRecord(0, rec);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable err ,Database Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("updateLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::updateCamDevSnapshot(const QString &strIp, const QString &imgUrl) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_dev");
|
pModel.setFilter(
|
QObject::tr("ip = '%1'").arg(strIp));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
QSqlRecord rec = pModel.record(0);
|
rec.setValue("reserved", imgUrl);
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
pModel.setRecord(0, rec);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateCamDevSnapshot err ,Database Error: " << pModel.lastError().text().toStdString());
|
return false;
|
}
|
}
|
|
int LDBTool::searchCamDevNumber(void) {
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_dev");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
|
return rowCount;
|
}
|
|
//查询摄像机列表
|
std::list<Record_Cam_Dev> LDBTool::searchCamDevTableAll(void) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
std::list<Record_Cam_Dev> lst;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_dev");
|
pModel.setFilter(QObject::tr("cam_dev_id != '' and cam_dev_id is not null "));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
for (int i = 0; i < rowCount; ++i) {
|
Record_Cam_Dev lChannelRec;
|
QSqlRecord rec = pModel.record(i);
|
lChannelRec.n_id = rec.value("id").toInt();
|
lChannelRec.str_cam_dev_id = rec.value("cam_dev_id").toString();
|
lChannelRec.str_name = rec.value("name").toString();
|
lChannelRec.str_addr = rec.value("addr").toString();
|
lChannelRec.str_longitude = rec.value("longitude").toString();
|
lChannelRec.str_latitude = rec.value("latitude").toString();
|
lChannelRec.str_ip = rec.value("ip").toString();
|
lChannelRec.n_port = rec.value("port").toInt();
|
lChannelRec.str_username = rec.value("username").toString();
|
lChannelRec.str_password = rec.value("password").toString();
|
lChannelRec.str_brand = rec.value("brand").toString();
|
lChannelRec.str_reserved = rec.value("reserved").toString();
|
lst.push_back(lChannelRec);
|
}
|
}
|
|
return lst;
|
}
|
|
bool LDBTool::searchCamDevByCamId(QString strCamId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
std::list<Record_Cam_Dev> lst;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_dev");
|
pModel.setFilter(QObject::tr("cam_dev_id ='%1' and cam_dev_id != '' and cam_dev_id is not null").arg(strCamId));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
|
return rowCount > 0;
|
}
|
|
//chn==========================
|
///
|
/// \brief LDBTool::insertChannelTable
|
/// \param channelRec
|
/// \return
|
//=============================
|
bool LDBTool::insertChannelTable(Record_Cam_Chn channelRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_chn");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
|
QSqlRecord rec = pModel.record();
|
rec.setGenerated("id", false);
|
rec.setValue("storage_dev_id", channelRec.str_storage_dev_id);
|
rec.setValue("chn", channelRec.n_chn);
|
rec.setValue("name", channelRec.str_name);
|
rec.setValue("addr", channelRec.str_addr);
|
rec.setValue("longitude", channelRec.str_longitude);
|
rec.setValue("latitude", channelRec.str_latitude);
|
rec.setValue("do_time", channelRec.tim_do_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec.setValue("update_time", channelRec.tim_update_time.toString("yyyy-MM-dd hh:mm:ss"));
|
// rec.setValue("cam_dev_id", channelRec.str_cam_dev_id);
|
// rec.setValue("ip", channelRec.str_ip);
|
// rec.setValue("port", channelRec.n_port);
|
// rec.setValue("username", channelRec.str_username);
|
// rec.setValue("password", channelRec.str_password);
|
// rec.setValue("brand", channelRec.str_brand);
|
rec.setValue("reserved", channelRec.str_reserved);
|
|
pModel.insertRecord(-1, rec);//TODO
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("insertLDeviceTable err ,Database Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("insertLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::deleteChannelTable(QString strDeviceId, int nChannelId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_chn");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1' and chn = '%2'").arg(strDeviceId).arg(nChannelId));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
|
if (rowCount >= 1) {
|
for (int i = 0; i < rowCount; i++) {
|
pModel.removeRow(i);//TODO
|
}
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("deleteLDeviceTable err ,Database Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("deleteLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::deleteChannelTableByCamID(QString strCamId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel_cam(NULL, m_db);
|
pModel_cam.setTable("cam_chn");
|
pModel_cam.setFilter(QObject::tr("cam_dev_id = '%1'").arg(strCamId));
|
pModel_cam.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel_cam.select();
|
|
QSqlTableModel pModel_sdk(NULL, m_db);
|
pModel_sdk.setTable("chn_sdk");
|
pModel_sdk.setFilter(QObject::tr("cam_dev_id = '%1'").arg(strCamId));
|
pModel_sdk.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel_sdk.select();
|
|
int rowCount_cam = pModel_cam.rowCount();
|
if (rowCount_cam >= 1) {
|
for (int i = 0; i < rowCount_cam; i++) {
|
pModel_cam.removeRow(i);//TODO
|
}
|
}
|
|
int rowCount_sdk = pModel_sdk.rowCount();
|
if (rowCount_sdk >= 1) {
|
for (int i = 0; i < rowCount_sdk; i++) {
|
pModel_sdk.removeRow(i);//TODO
|
}
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel_cam.submitAll() && \
|
pModel_sdk.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("deleteLDeviceTable err ,Database Error: " \
|
<< pModel_cam.lastError().text().toStdString() \
|
<< pModel_sdk.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("deleteLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::updateChannelTable(Record_Cam_Chn channelRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_chn");
|
pModel.setFilter(
|
QObject::tr("storage_dev_id = '%1' and chn = '%2'").arg(channelRec.str_storage_dev_id).arg(channelRec.n_chn));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
QSqlRecord rec = pModel.record(0);
|
// rec.setGenerated("id", false);
|
rec.setValue("storage_dev_id", channelRec.str_storage_dev_id);
|
rec.setValue("chn", channelRec.n_chn);
|
rec.setValue("name", channelRec.str_name);
|
rec.setValue("addr", channelRec.str_addr);
|
rec.setValue("longitude", channelRec.str_longitude);
|
rec.setValue("latitude", channelRec.str_latitude);
|
rec.setValue("do_time", channelRec.tim_do_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec.setValue("update_time", channelRec.tim_update_time.toString("yyyy-MM-dd hh:mm:ss"));
|
// rec.setValue("cam_dev_id", channelRec.str_cam_dev_id);
|
// rec.setValue("ip", channelRec.str_ip);
|
// rec.setValue("port", channelRec.n_port);
|
// rec.setValue("username", channelRec.str_username);
|
// rec.setValue("password", channelRec.str_password);
|
// rec.setValue("brand", channelRec.str_brand);
|
rec.setValue("reserved", channelRec.str_reserved);
|
|
int rowCount = pModel.rowCount();
|
if (rowCount == 0) {
|
pModel.insertRecord(-1, rec);
|
} else if (rowCount > 0) {
|
pModel.setRecord(0, rec);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable err ,Database Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("updateLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
std::list<Record_Cam_Chn> LDBTool::searchChannelTableAll(void) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
std::list<Record_Cam_Chn> lst;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_chn");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
for (int i = 0; i < rowCount; ++i) {
|
Record_Cam_Chn lChannelRec;
|
QSqlRecord rec = pModel.record(i);
|
lChannelRec.n_id = rec.value("id").toInt();
|
lChannelRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
lChannelRec.n_chn = rec.value("chn").toInt();
|
lChannelRec.str_name = rec.value("name").toString();
|
lChannelRec.str_addr = rec.value("addr").toString();
|
lChannelRec.str_longitude = rec.value("longitude").toString();
|
lChannelRec.str_latitude = rec.value("latitude").toString();
|
lChannelRec.tim_do_time = QDateTime::fromString(rec.value("do_time").toString(), "yyyy-MM-dd hh:mm:ss");
|
lChannelRec.tim_update_time = QDateTime::fromString(rec.value("update_time").toString(),
|
"yyyy-MM-dd hh:mm:ss");
|
// lChannelRec.str_cam_dev_id = rec.value("cam_dev_id").toString();
|
// lChannelRec.str_ip = rec.value("ip").toString();
|
// lChannelRec.n_port = rec.value("port").toInt();
|
// lChannelRec.str_username = rec.value("username").toString();
|
// lChannelRec.str_password = rec.value("password").toString();
|
// lChannelRec.str_brand = rec.value("brand").toString();
|
lChannelRec.str_reserved = rec.value("reserved").toString();
|
lst.push_back(lChannelRec);
|
}
|
}
|
|
return lst;
|
}
|
|
//查询tongdao摄像机列表
|
std::list<Record_Cam_Chn> LDBTool::searchChannelTableCamType(void) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
std::list<Record_Cam_Chn> lst;
|
QSqlTableModel pModel(NULL, m_db);
|
|
pModel.setTable("cam_chn");
|
pModel.setFilter(QObject::tr("cam_dev_id != '' and cam_dev_id is not null"));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
for (int i = 0; i < rowCount; ++i) {
|
Record_Cam_Chn lChannelRec;
|
QSqlRecord rec = pModel.record(i);
|
lChannelRec.n_id = rec.value("id").toInt();
|
lChannelRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
lChannelRec.n_chn = rec.value("chn").toInt();
|
lChannelRec.str_name = rec.value("name").toString();
|
lChannelRec.str_addr = rec.value("addr").toString();
|
lChannelRec.str_longitude = rec.value("longitude").toString();
|
lChannelRec.str_latitude = rec.value("latitude").toString();
|
lChannelRec.tim_do_time = QDateTime::fromString(rec.value("do_time").toString(), "yyyy-MM-dd hh:mm:ss");
|
lChannelRec.tim_update_time = QDateTime::fromString(rec.value("update_time").toString(),
|
"yyyy-MM-dd hh:mm:ss");
|
// lChannelRec.str_cam_dev_id = rec.value("cam_dev_id").toString();
|
// lChannelRec.str_ip = rec.value("ip").toString();
|
// lChannelRec.n_port = rec.value("port").toInt();
|
// lChannelRec.str_username = rec.value("username").toString();
|
// lChannelRec.str_password = rec.value("password").toString();
|
// lChannelRec.str_brand = rec.value("brand").toString();
|
lChannelRec.str_reserved = rec.value("reserved").toString();
|
lst.push_back(lChannelRec);
|
}
|
}
|
|
return lst;
|
}
|
|
std::list<Record_Cam_Chn> LDBTool::searchChannelTableByDevlId(QString strDeviceId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
std::list<Record_Cam_Chn> lst;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_chn");
|
pModel.setFilter(QObject::tr(" storage_dev_id = '%1'").arg(strDeviceId));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
for (int i = 0; i < rowCount; ++i) {
|
Record_Cam_Chn lChannelRec;
|
QSqlRecord rec = pModel.record(i);
|
lChannelRec.n_id = rec.value("id").toInt();
|
lChannelRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
lChannelRec.n_chn = rec.value("chn").toInt();
|
lChannelRec.str_name = rec.value("name").toString();
|
lChannelRec.str_addr = rec.value("addr").toString();
|
lChannelRec.str_longitude = rec.value("longitude").toString();
|
lChannelRec.str_latitude = rec.value("latitude").toString();
|
lChannelRec.tim_do_time = QDateTime::fromString(rec.value("do_time").toString(), "yyyy-MM-dd hh:mm:ss");
|
lChannelRec.tim_update_time = QDateTime::fromString(rec.value("update_time").toString(),
|
"yyyy-MM-dd hh:mm:ss");
|
// lChannelRec.str_cam_dev_id = rec.value("cam_dev_id").toString();
|
// lChannelRec.str_ip = rec.value("ip").toString();
|
// lChannelRec.n_port = rec.value("port").toInt();
|
// lChannelRec.str_username = rec.value("username").toString();
|
// lChannelRec.str_password = rec.value("password").toString();
|
// lChannelRec.str_brand = rec.value("brand").toString();
|
lChannelRec.str_reserved = rec.value("reserved").toString();
|
lst.push_back(lChannelRec);
|
}
|
}
|
|
return lst;
|
}
|
|
Record_Cam_Chn LDBTool::searchChannelTableByChannelId(QString strDeviceId, int nChannelId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
Record_Cam_Chn lChannelRec;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_chn");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1' and chn = '%2'").arg(strDeviceId).arg(nChannelId));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
QSqlRecord rec = pModel.record(0);
|
lChannelRec.n_id = rec.value("id").toInt();
|
lChannelRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
lChannelRec.n_chn = rec.value("chn").toInt();
|
lChannelRec.str_name = rec.value("name").toString();
|
lChannelRec.str_addr = rec.value("addr").toString();
|
lChannelRec.str_longitude = rec.value("longitude").toString();
|
lChannelRec.str_latitude = rec.value("latitude").toString();
|
lChannelRec.tim_do_time = QDateTime::fromString(rec.value("do_time").toString(), "yyyy-MM-dd hh:mm:ss");
|
lChannelRec.tim_update_time = QDateTime::fromString(rec.value("update_time").toString(), \
|
"yyyy-MM-dd hh:mm:ss");
|
// lChannelRec.str_cam_dev_id = rec.value("cam_dev_id").toString();
|
// lChannelRec.str_ip = rec.value("ip").toString();
|
// lChannelRec.n_port = rec.value("port").toInt();
|
// lChannelRec.str_username = rec.value("username").toString();
|
// lChannelRec.str_password = rec.value("password").toString();
|
// lChannelRec.str_brand = rec.value("brand").toString();
|
lChannelRec.str_reserved = rec.value("reserved").toString();
|
}
|
|
return lChannelRec;
|
}
|
|
Record_Cam_Chn LDBTool::searchOldestRecordfromChnTableByUpdateTime(void) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
Record_Cam_Chn lChannelRec;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_chn");
|
pModel.setFilter(QObject::tr(
|
"storage_dev_id != '' and storage_dev_id is not null and chn != 0 and do_time != '' and do_time is not null"));
|
pModel.setSort(8, Qt::AscendingOrder); //id属性,即第0列,升序排列,找到时间最旧的记录
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
QSqlRecord rec = pModel.record(0);
|
lChannelRec.n_id = rec.value("id").toInt();
|
lChannelRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
lChannelRec.n_chn = rec.value("chn").toInt();
|
lChannelRec.str_name = rec.value("name").toString();
|
lChannelRec.str_addr = rec.value("addr").toString();
|
lChannelRec.str_longitude = rec.value("longitude").toString();
|
lChannelRec.str_latitude = rec.value("latitude").toString();
|
lChannelRec.tim_do_time = QDateTime::fromString(rec.value("do_time").toString(), "yyyy-MM-dd hh:mm:ss");
|
lChannelRec.tim_update_time = QDateTime::fromString(rec.value("update_time").toString(), \
|
"yyyy-MM-dd hh:mm:ss");
|
// lChannelRec.str_cam_dev_id = rec.value("cam_dev_id").toString();
|
// lChannelRec.str_ip = rec.value("ip").toString();
|
// lChannelRec.n_port = rec.value("port").toInt();
|
// lChannelRec.str_username = rec.value("username").toString();
|
// lChannelRec.str_password = rec.value("password").toString();
|
// lChannelRec.str_brand = rec.value("brand").toString();
|
lChannelRec.str_reserved = rec.value("reserved").toString();
|
|
rec.setValue("update_time", QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));
|
pModel.setRecord(0, rec);//TODO
|
m_db.transaction();//开始事务操作
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable err ,Database Error: " << pModel.lastError().text().toStdString());
|
}
|
}
|
|
return lChannelRec;
|
}
|
|
Record_Cam_Chn LDBTool::searchOldestRecordfromChnTableByChannelId(QString strDeviceId, int nChannelId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
Record_Cam_Chn lChannelRec;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_chn");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1' and chn = '%2'").arg(strDeviceId).arg(nChannelId)); //TODO
|
pModel.setSort(7, Qt::AscendingOrder); //id属性,即第0列,升序排列
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
QSqlRecord rec = pModel.record(0);
|
lChannelRec.n_id = rec.value("id").toInt();
|
lChannelRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
lChannelRec.n_chn = rec.value("chn").toInt();
|
lChannelRec.str_name = rec.value("name").toString();
|
lChannelRec.str_addr = rec.value("addr").toString();
|
lChannelRec.str_longitude = rec.value("longitude").toString();
|
lChannelRec.str_latitude = rec.value("latitude").toString();
|
lChannelRec.tim_do_time = QDateTime::fromString(rec.value("do_time").toString(), "yyyy-MM-dd hh:mm:ss");
|
lChannelRec.tim_update_time = QDateTime::fromString(rec.value("update_time").toString(), \
|
"yyyy-MM-dd hh:mm:ss");
|
// lChannelRec.str_cam_dev_id = rec.value("cam_dev_id").toString();
|
// lChannelRec.str_ip = rec.value("ip").toString();
|
// lChannelRec.n_port = rec.value("port").toInt();
|
// lChannelRec.str_username = rec.value("username").toString();
|
// lChannelRec.str_password = rec.value("password").toString();
|
// lChannelRec.str_brand = rec.value("brand").toString();
|
lChannelRec.str_reserved = rec.value("reserved").toString();
|
|
rec.setValue("update_time", QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));
|
pModel.setRecord(0, rec);//TODO
|
m_db.transaction();//开始事务操作
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable err ,Database Error: " << pModel.lastError().text().toStdString());
|
}
|
}
|
|
return lChannelRec;
|
}
|
|
Record_Cam_Chn LDBTool::searchNewestRecordfromChnTableByChannelId(QString strDeviceId, int nChannelId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
Record_Cam_Chn lChannelRec;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_chn");
|
pModel.setFilter(QObject::tr(" storage_dev_id = '%1' and chn = '%2'").arg(strDeviceId).arg(nChannelId)); //TODO
|
pModel.setSort(7, Qt::DescendingOrder); //id属性,即第0列,升序排列
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
QSqlRecord rec = pModel.record(0);
|
lChannelRec.n_id = rec.value("id").toInt();
|
lChannelRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
lChannelRec.n_chn = rec.value("chn").toInt();
|
lChannelRec.str_name = rec.value("name").toString();
|
lChannelRec.str_addr = rec.value("addr").toString();
|
lChannelRec.str_longitude = rec.value("longitude").toString();
|
lChannelRec.str_latitude = rec.value("latitude").toString();
|
lChannelRec.tim_do_time = QDateTime::fromString(rec.value("do_time").toString(), "yyyy-MM-dd hh:mm:ss");
|
lChannelRec.tim_update_time = QDateTime::fromString(rec.value("update_time").toString(), \
|
"yyyy-MM-dd hh:mm:ss");
|
// lChannelRec.str_cam_dev_id = rec.value("cam_dev_id").toString();
|
// lChannelRec.str_ip = rec.value("ip").toString();
|
// lChannelRec.n_port = rec.value("port").toInt();
|
// lChannelRec.str_username = rec.value("username").toString();
|
// lChannelRec.str_password = rec.value("password").toString();
|
// lChannelRec.str_brand = rec.value("brand").toString();
|
lChannelRec.str_reserved = rec.value("reserved").toString();
|
}
|
|
return lChannelRec;
|
}
|
|
///
|
/// \brief LDBTool::insertloadFileTable
|
/// \param channelRec
|
/// \return
|
///
|
bool LDBTool::insertLoadFileTable(Record_Load_File_info loadfileRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("load_file_info");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
|
QSqlRecord rec = pModel.record();
|
rec.setGenerated("id", false);
|
rec.setValue("storage_dev_id", loadfileRec.str_storage_dev_id);
|
rec.setValue("chn", loadfileRec.n_chn);
|
rec.setValue("do_time", loadfileRec.tim_do_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec.setValue("finish_flag", loadfileRec.b_finish_flag);
|
rec.setValue("path", loadfileRec.str_load_file_path);
|
rec.setValue("update_time", loadfileRec.tim_update_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec.setValue("reserved", loadfileRec.str_reserved);
|
|
pModel.insertRecord(-1, rec);//TODO
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("insertLDeviceTable err ,Database Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("insertLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::deleteLoadFileTable(QString strDeviceId, int nChannelId, QDateTime tim_startTime) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("load_file_info");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1' and chn = '%2' and do_time = '%3'")\
|
.arg(strDeviceId).arg(nChannelId).arg(tim_startTime.toString("yyyy-MM-dd hh:mm:ss")));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
|
if (rowCount >= 1) {
|
for (int i = 0; i < rowCount; i++) {
|
pModel.removeRow(i);//TODO
|
}
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("deleteLDeviceTable err ,Database Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("deleteLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::deleteLoadFileTablebyDevID(QString strDeviceId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("load_file_info");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1'").arg(strDeviceId));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
|
if (rowCount >= 1) {
|
for (int i = 0; i < rowCount; i++) {
|
pModel.removeRow(i);//TODO
|
}
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("deleteLDeviceTable err ,Database Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("deleteLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::updateLoadFileTable(Record_Load_File_info loadfileRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("load_file_info");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1' and chn = '%2' and do_time = '%3'")\
|
.arg(loadfileRec.str_storage_dev_id).arg(loadfileRec.n_chn)\
|
.arg(loadfileRec.tim_do_time.toString("yyyy-MM-dd hh:mm:ss")));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
QSqlRecord rec = pModel.record(0);
|
// rec.setGenerated("id", false);
|
rec.setValue("storage_dev_id", loadfileRec.str_storage_dev_id);
|
rec.setValue("chn", loadfileRec.n_chn);
|
rec.setValue("do_time", loadfileRec.tim_do_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec.setValue("finish_flag", loadfileRec.b_finish_flag);
|
rec.setValue("path", loadfileRec.str_load_file_path);
|
rec.setValue("update_time", loadfileRec.tim_update_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec.setValue("reserved", loadfileRec.str_reserved);
|
|
int rowCount = pModel.rowCount();
|
if (rowCount == 0) {
|
pModel.insertRecord(-1, rec);
|
} else if (rowCount > 0) {
|
pModel.setRecord(0, rec);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable err ,Database Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("updateLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
std::list<Record_Load_File_info> LDBTool::searchLoadFileTableAll(void) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
std::list<Record_Load_File_info> lst;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("load_file_info");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
for (int i = 0; i < rowCount; ++i) {
|
Record_Load_File_info lRec;
|
QSqlRecord rec = pModel.record(i);
|
if (!rec.value("finish_flag").toBool()) {
|
lRec.n_id = rec.value("id").toInt();
|
lRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
lRec.n_chn = rec.value("chn").toInt();
|
lRec.tim_do_time = rec.value("do_time").toDateTime();
|
lRec.tim_do_time = QDateTime::fromString(rec.value("do_time").toString(), "yyyy-MM-dd hh:mm:ss");
|
lRec.b_finish_flag = rec.value("finish_flag").toBool();
|
lRec.str_load_file_path = rec.value("path").toString();
|
lRec.tim_update_time = QDateTime::fromString(rec.value("update_time").toString(),
|
"yyyy-MM-dd hh:mm:ss");
|
lRec.str_reserved = rec.value("reserved").toString();
|
lst.push_back(lRec);
|
}
|
}
|
}
|
|
return lst;
|
}
|
|
Record_Load_File_info LDBTool::searchOldestRecordfromLoadTableByUpdateTime(void) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
Record_Load_File_info lRec;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("load_file_info");
|
pModel.setFilter(QObject::tr("finish_flag = 1"));
|
pModel.setSort(6, Qt::AscendingOrder); //id属性,即第0列,升序排列,找到时间最旧的记录
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
QSqlRecord rec = pModel.record(0);
|
lRec.n_id = rec.value("id").toInt();
|
lRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
lRec.n_chn = rec.value("chn").toInt();
|
lRec.tim_do_time = QDateTime::fromString(rec.value("do_time").toString(), "yyyy-MM-dd hh:mm:ss");
|
lRec.b_finish_flag = rec.value("finish_flag").toBool();
|
lRec.str_load_file_path = rec.value("path").toString();
|
lRec.tim_update_time = QDateTime::fromString(rec.value("update_time").toString(), "yyyy-MM-dd hh:mm:ss");
|
lRec.str_reserved = rec.value("reserved").toString();
|
} else {
|
ERR("rowCount <=0");
|
}
|
|
return lRec;
|
}
|
|
///
|
/// \brief insertLoadFileTableAndUpdateChannelTable
|
/// \param loadfileRec
|
/// \param channelRec
|
/// \return
|
///
|
bool LDBTool::insertLoadFileTableAndUpdateChannelTable(Record_Load_File_info loadfileRec,
|
Record_Cam_Chn channelRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel_load(NULL, m_db);
|
pModel_load.setTable("load_file_info");
|
pModel_load.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
|
QSqlRecord rec_load = pModel_load.record();
|
rec_load.setGenerated("id", false);
|
rec_load.setValue("storage_dev_id", loadfileRec.str_storage_dev_id);
|
rec_load.setValue("chn", loadfileRec.n_chn);
|
rec_load.setValue("do_time", loadfileRec.tim_do_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec_load.setValue("finish_flag", loadfileRec.b_finish_flag);
|
rec_load.setValue("path", loadfileRec.str_load_file_path);
|
rec_load.setValue("update_time", loadfileRec.tim_update_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec_load.setValue("reserved", loadfileRec.str_reserved);
|
|
/////////
|
QSqlTableModel pModel_chn(NULL, m_db);
|
pModel_chn.setTable("cam_chn");
|
pModel_chn.setFilter(
|
QObject::tr("storage_dev_id = '%1' and chn = '%2'").arg(channelRec.str_storage_dev_id).arg(channelRec.n_chn));
|
pModel_chn.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel_chn.select();
|
|
QSqlRecord rec_chn = pModel_chn.record(0);
|
// rec_chn.setGenerated("id", false);
|
rec_chn.setValue("storage_dev_id", channelRec.str_storage_dev_id);
|
rec_chn.setValue("chn", channelRec.n_chn);
|
rec_chn.setValue("name", channelRec.str_name);
|
rec_chn.setValue("addr", channelRec.str_addr);
|
rec_chn.setValue("longitude", channelRec.str_longitude);
|
rec_chn.setValue("latitude", channelRec.str_latitude);
|
rec_chn.setValue("do_time", channelRec.tim_do_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec_chn.setValue("update_time", channelRec.tim_update_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec_chn.setValue("reserved", channelRec.str_reserved);
|
|
pModel_load.insertRecord(-1, rec_load);
|
|
int rowCount = pModel_chn.rowCount();
|
if (rowCount == 0) {
|
pModel_chn.insertRecord(-1, rec_chn);
|
} else if (rowCount > 0) {
|
pModel_chn.setRecord(0, rec_chn);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel_load.submitAll() && pModel_chn.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("insertLDeviceTable ,pModel_load Error: " << pModel_load.lastError().text().toStdString()
|
<< " pModel_chn "
|
<< pModel_load.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("insertLDeviceTable"),\
|
// QObject::tr("Database Error: %1").arg(pModel_load.lastError().text()),\
|
// QObject::tr("Database Error: %1").arg(pModel_chn.lastError().text()));
|
return false;
|
}
|
}
|
|
///
|
/// \brief LDBTool::insertCutVideoTable
|
/// \param cutVideoRec
|
/// \return
|
///
|
bool LDBTool::insertCutVideoTable(Record_Cut_Video_info cutVideoRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cut_video_info");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
|
QSqlRecord rec = pModel.record();
|
rec.setGenerated("id", false);
|
rec.setValue("storage_dev_id", cutVideoRec.str_storage_dev_id);
|
rec.setValue("chn", cutVideoRec.n_chn);
|
rec.setValue("src_path", cutVideoRec.str_src_path);
|
rec.setValue("dst_path", cutVideoRec.str_dst_path);
|
rec.setValue("total", cutVideoRec.n_total);
|
rec.setValue("finish_flag", cutVideoRec.b_finish_flag);
|
rec.setValue("update_time", cutVideoRec.tim_update_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec.setValue("reserved", cutVideoRec.str_reserved);
|
|
pModel.insertRecord(-1, rec);//TODO
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("insertLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("insertLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::deleteCutVideoTable(QString strDeviceId, int nChannelId, QString strSrcPath) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cut_video_info");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1' and chn = '%2' and src_path = '%3'")\
|
.arg(strDeviceId).arg(nChannelId).arg(strSrcPath));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
|
if (rowCount >= 1) {
|
for (int i = 0; i < rowCount; i++) {
|
pModel.removeRow(i);//TODO
|
}
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("deleteLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("deleteLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::deleteCutVideoTablebyDevID(QString strDeviceId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cut_video_info");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1'").arg(strDeviceId));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
|
if (rowCount >= 1) {
|
for (int i = 0; i < rowCount; i++) {
|
pModel.removeRow(i);//TODO
|
}
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("deleteLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
return false;
|
}
|
}
|
|
bool LDBTool::updateCutVideoTable(Record_Cut_Video_info cutVideoRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cut_video_info");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1' and chn = '%2' and src_path = '%3'")\
|
.arg(cutVideoRec.str_storage_dev_id).arg(cutVideoRec.n_chn).arg(cutVideoRec.str_src_path));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
QSqlRecord rec = pModel.record(0);
|
// rec.setGenerated("id", false);
|
rec.setValue("storage_dev_id", cutVideoRec.str_storage_dev_id);
|
rec.setValue("chn", cutVideoRec.n_chn);
|
rec.setValue("src_path", cutVideoRec.str_src_path);
|
rec.setValue("dst_path", cutVideoRec.str_dst_path);
|
rec.setValue("total", cutVideoRec.n_total);
|
rec.setValue("finish_flag", cutVideoRec.b_finish_flag);
|
rec.setValue("update_time", cutVideoRec.tim_update_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec.setValue("reserved", cutVideoRec.str_reserved);
|
|
int rowCount = pModel.rowCount();
|
if (rowCount == 0) {
|
pModel.insertRecord(-1, rec);
|
} else if (rowCount > 0) {
|
pModel.setRecord(0, rec);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("updateLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::updateCutVideoTable(std::string src_path, std::string dst_path, int total) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cut_video_info");
|
pModel.setFilter(QObject::tr("src_path = '%1'").arg(QString::fromStdString(src_path)));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
/*QSqlRecord rec = pModel.record();
|
rec.setValue("dst_path",QString::fromStdString(dst_path));
|
rec.setValue("total",total);
|
rec.setValue("finish_flag",1);
|
rec.setValue("update_time",QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));*/
|
|
int rowCount = pModel.rowCount();
|
/*if(rowCount == 0)
|
{
|
pModel.insertRecord(-1,rec);
|
}else */if (rowCount > 0) {
|
QSqlRecord rec = pModel.record(0);
|
rec.setValue("dst_path", QString::fromStdString(dst_path));
|
rec.setValue("total", total);
|
rec.setValue("finish_flag", 1);
|
rec.setValue("update_time", QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));
|
|
pModel.setRecord(0, rec);//TODO
|
} else {
|
return false;
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("updateLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
std::list<Record_Cut_Video_info> LDBTool::searchCutVideoTableAll(void) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
std::list<Record_Cut_Video_info> lst;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cut_video_info");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
for (int i = 0; i < rowCount; ++i) {
|
Record_Cut_Video_info lRec;
|
QSqlRecord rec = pModel.record(i);
|
if (!rec.value("finish_flag").toBool()) {
|
lRec.n_id = rec.value("id").toInt();
|
lRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
lRec.n_chn = rec.value("chn").toInt();
|
lRec.str_src_path = rec.value("src_path").toString();
|
lRec.str_dst_path = rec.value("dst_path").toString();
|
lRec.n_total = rec.value("total").toInt();
|
lRec.b_finish_flag = rec.value("finish_flag").toBool();
|
lRec.tim_update_time = QDateTime::fromString(rec.value("update_time").toString(),
|
"yyyy-MM-dd hh:mm:ss");
|
lRec.str_reserved = rec.value("reserved").toString();
|
lst.push_back(lRec);
|
}
|
}
|
}
|
|
return lst;
|
}
|
|
Record_Cut_Video_info LDBTool::searchOldestRecordfromCutTableByUpdateTime(void) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
Record_Cut_Video_info lRec;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cut_video_info");
|
pModel.setFilter(QObject::tr("finish_flag = 1"));
|
pModel.setSort(7, Qt::AscendingOrder); //id属性,即第0列,升序排列,找到时间最旧的记录
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
QSqlRecord rec = pModel.record(0);
|
lRec.n_id = rec.value("id").toInt();
|
lRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
lRec.n_chn = rec.value("chn").toInt();
|
lRec.str_src_path = rec.value("src_path").toString();
|
lRec.str_dst_path = rec.value("dst_path").toString();
|
lRec.n_total = rec.value("total").toInt();
|
lRec.b_finish_flag = rec.value("finish_flag").toBool();
|
lRec.tim_update_time = QDateTime::fromString(rec.value("update_time").toString(), "yyyy-MM-dd hh:mm:ss");
|
lRec.str_reserved = rec.value("reserved").toString();
|
}
|
|
return lRec;
|
}
|
|
///
|
/// \brief insertCutVideoTableandDeleteLoadFileTable
|
/// \param cutVideoRec
|
/// \param strDeviceId
|
/// \param nChannelId
|
/// \param tim_loadStartTime
|
/// \return
|
///
|
bool LDBTool::insertCutVideoTableAndDeleteLoadFileTable(Record_Cut_Video_info cutVideoRec,
|
QString strDeviceId, int nChannelId,
|
QDateTime tim_loadStartTime) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel_cut(NULL, m_db);
|
pModel_cut.setTable("cut_video_info");
|
pModel_cut.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
|
QSqlRecord rec = pModel_cut.record();
|
rec.setGenerated("id", false);
|
rec.setValue("storage_dev_id", cutVideoRec.str_storage_dev_id);
|
rec.setValue("chn", cutVideoRec.n_chn);
|
rec.setValue("src_path", cutVideoRec.str_src_path);
|
rec.setValue("dst_path", cutVideoRec.str_dst_path);
|
rec.setValue("total", cutVideoRec.n_total);
|
rec.setValue("finish_flag", cutVideoRec.b_finish_flag);
|
rec.setValue("update_time", cutVideoRec.tim_update_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec.setValue("reserved", cutVideoRec.str_reserved);
|
|
QSqlTableModel pModel_load(NULL, m_db);
|
pModel_load.setTable("load_file_info");
|
pModel_load.setFilter(QObject::tr("storage_dev_id = '%1' and chn = '%2' and do_time = '%3'")\
|
.arg(strDeviceId).arg(nChannelId).arg(tim_loadStartTime.toString("yyyy-MM-dd hh:mm:ss")));
|
pModel_load.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel_load.select();
|
|
pModel_cut.insertRecord(-1, rec);
|
|
int rowCount = pModel_load.rowCount();
|
|
if (rowCount >= 1) {
|
for (int i = 0; i < rowCount; i++) {
|
pModel_load.removeRow(i);//TODO
|
}
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel_cut.submitAll() && pModel_load.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable ,pModel_cut Error: " << pModel_cut.lastError().text().toStdString()
|
<< " " << pModel_load.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("insertLDeviceTable"),\
|
// QObject::tr("Database Error: %1").arg(pModel_cut.lastError().text()),\
|
// QObject::tr("Database Error: %1").arg(pModel_load.lastError().text()));
|
return false;
|
}
|
}
|
|
///
|
/// \brief LDBTool::insertSdkHdlTable
|
/// \param sdkHdlRec
|
/// \return
|
///
|
bool LDBTool::insertSdkHdlTable(Record_Sdk_Hdl_info sdkHdlRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("sdk_hdl_info");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
|
QSqlRecord rec = pModel.record();
|
rec.setGenerated("id", false);
|
rec.setValue("storage_dev_id", sdkHdlRec.str_storage_dev_id);
|
rec.setValue("chn", sdkHdlRec.n_chn);
|
rec.setValue("src_path", sdkHdlRec.str_src_path);
|
rec.setValue("total", sdkHdlRec.n_total);
|
rec.setValue("pos", sdkHdlRec.n_pos);
|
rec.setValue("reserved", sdkHdlRec.str_reserved);
|
|
pModel.insertRecord(-1, rec);//TODO
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("insertLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("insertLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::deleteSdkHdlTable(QString strSrcPath) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("sdk_hdl_info");
|
pModel.setFilter(QObject::tr("src_path = '%1'").arg(strSrcPath));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
|
if (rowCount >= 1) {
|
for (int i = 0; i < rowCount; i++) {
|
pModel.removeRow(i);//TODO
|
}
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("deleteLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("deleteLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::deleteSdkHdlTablebyDevID(QString strDevId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("sdk_hdl_info");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1'").arg(strDevId));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
|
if (rowCount >= 1) {
|
for (int i = 0; i < rowCount; i++) {
|
pModel.removeRow(i);//TODO
|
}
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("deleteLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("deleteLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::updateSdkHdlTable(Record_Sdk_Hdl_info sdkHdlRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("sdk_hdl_info");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1' and chn = '%2' and src_path = '%3'")\
|
.arg(sdkHdlRec.str_storage_dev_id).arg(sdkHdlRec.n_chn).arg(sdkHdlRec.str_src_path));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
QSqlRecord rec = pModel.record(0);
|
// rec.setGenerated("id", false);
|
rec.setValue("storage_dev_id", sdkHdlRec.str_storage_dev_id);
|
rec.setValue("chn", sdkHdlRec.n_chn);
|
rec.setValue("src_path", sdkHdlRec.str_src_path);
|
rec.setValue("total", sdkHdlRec.n_total);
|
rec.setValue("pos", sdkHdlRec.n_pos);
|
rec.setValue("reserved", sdkHdlRec.str_reserved);
|
|
int rowCount = pModel.rowCount();
|
if (rowCount == 0) {
|
pModel.insertRecord(-1, rec);
|
} else if (rowCount > 0) {
|
pModel.setRecord(0, rec);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("deleteLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("updateLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
|
bool LDBTool::updateSdkHdlTablePos(QString str_src_path, int pos) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("sdk_hdl_info");
|
pModel.setFilter(QObject::tr("src_path = '%1'").arg(str_src_path));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
/*QSqlRecord rec = pModel.record();
|
rec.setValue("pos",pos);*/
|
|
int rowCount = pModel.rowCount();
|
/*if(rowCount == 0)
|
{
|
pModel.insertRecord(-1,rec);
|
}else */if (rowCount > 0) {
|
QSqlRecord rec = pModel.record(0);
|
rec.setValue("pos", pos);
|
pModel.setRecord(0, rec);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("updateLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
|
std::list<Record_Sdk_Hdl_info> LDBTool::searchSdkHdlTableAll(void) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
std::list<Record_Sdk_Hdl_info> lst;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("sdk_hdl_info");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
for (int i = 0; i < rowCount; ++i) {
|
Record_Sdk_Hdl_info lRec;
|
QSqlRecord rec = pModel.record(i);
|
lRec.n_id = rec.value("id").toInt();
|
lRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
lRec.n_chn = rec.value("chn").toInt();
|
lRec.str_src_path = rec.value("src_path").toString();
|
lRec.n_total = rec.value("total").toInt();
|
lRec.n_pos = rec.value("pos").toInt();
|
lRec.str_reserved = rec.value("reserved").toString();
|
lst.push_back(lRec);
|
}
|
}
|
|
return lst;
|
}
|
|
//Record_Sdk_Hdl_info LDBTool::searchOldestRecordfromSdkHdlTableByUpdateTime(void)
|
//{
|
// Record_Sdk_Hdl_info lRec;
|
// QSqlTableModel pModel(NULL,m_db);
|
// pModel.setTable("sdk_hdl_info");
|
// pModel.setSort(7,Qt::AscendingOrder); //id属性,即第0列,升序排列,找到时间最旧的记录
|
// pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
// pModel.select();
|
|
// int rowCount = pModel.rowCount();
|
// if (rowCount > 0)
|
// {
|
// QSqlRecord rec = pModel.record(0);
|
// lRec.n_id = rec.value("id").toInt();
|
// lRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
// lRec.n_chn = rec.value("chn").toInt();
|
// lRec.str_src_path = rec.value("src_path").toString();
|
// lRec.n_total = rec.value("total").toInt();
|
// lRec.n_pos = rec.value("pos").toInt();
|
// lRec.str_reserved = rec.value("reserved").toString();
|
// }
|
|
// return lRec;
|
//}
|
|
///
|
/// \brief insertSdkHdlTableAndDeleteCutVideoTable
|
/// \param sdkHdlRec
|
/// \param strDeviceId
|
/// \param nChannelId
|
/// \param strCutSrcPath
|
/// \return
|
///
|
bool LDBTool::insertSdkHdlTableAndDeleteCutVideoTable(Record_Sdk_Hdl_info sdkHdlRec, \
|
QString strDeviceId, \
|
int nChannelId, \
|
QString strCutSrcPath) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel_sdkhdl(NULL, m_db);
|
pModel_sdkhdl.setTable("sdk_hdl_info");
|
pModel_sdkhdl.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
|
QSqlRecord rec = pModel_sdkhdl.record();
|
rec.setGenerated("id", false);
|
rec.setValue("storage_dev_id", sdkHdlRec.str_storage_dev_id);
|
rec.setValue("chn", sdkHdlRec.n_chn);
|
rec.setValue("src_path", sdkHdlRec.str_src_path);
|
rec.setValue("total", sdkHdlRec.n_total);
|
rec.setValue("pos", sdkHdlRec.n_pos);
|
rec.setValue("reserved", sdkHdlRec.str_reserved);
|
|
////////
|
QSqlTableModel pModel_cut(NULL, m_db);
|
pModel_cut.setTable("cut_video_info");
|
pModel_cut.setFilter(QObject::tr("storage_dev_id = '%1' and chn = '%2' and src_path = '%3'")\
|
.arg(strDeviceId).arg(nChannelId).arg(strCutSrcPath));
|
pModel_cut.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel_cut.select();
|
|
pModel_sdkhdl.insertRecord(-1, rec);
|
int rowCount = pModel_cut.rowCount();
|
|
if (rowCount >= 1) {
|
for (int i = 0; i < rowCount; i++) {
|
pModel_cut.removeRow(i);//TODO
|
}
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel_sdkhdl.submitAll() && pModel_cut.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable ,pModel_load Error: " << pModel_sdkhdl.lastError().text().toStdString() << " "
|
<< pModel_cut.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("insertLDeviceTable"),\
|
QObject::tr("Database Error: %1").arg(pModel_sdkhdl.lastError().text()),\
|
QObject::tr("Database Error: %1").arg(pModel_cut.lastError().text()));
|
return false;
|
}
|
}
|
|
///
|
/// \brief insertCamSdkTable
|
/// \param camSdkRec
|
/// \return
|
///
|
bool LDBTool::insertCamSdkTable(Record_Cam_Sdk camSdkRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_sdk");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
|
QSqlRecord rec = pModel.record();
|
rec.setGenerated("id", false);
|
rec.setValue("cam_dev_id", camSdkRec.str_cam_dev_id);
|
rec.setValue("sdks", camSdkRec.str_sdks);
|
rec.setValue("det_thr", camSdkRec.str_det_thr);
|
rec.setValue("cmp_thr", camSdkRec.str_cmp_thr);
|
rec.setValue("reserved", camSdkRec.str_reserved);
|
|
pModel.insertRecord(-1, rec);//TODO
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("insertLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("insertLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::deleteCamSdkTable(QString strCamDevId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_sdk");
|
pModel.setFilter(QObject::tr("cam_dev_id = '%1'").arg(strCamDevId));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
|
if (rowCount >= 1) {
|
for (int i = 0; i < rowCount; i++) {
|
pModel.removeRow(i);//TODO
|
}
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("deleteLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("deleteLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::updateCamSdkTable(Record_Cam_Sdk camSdkRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_sdk");
|
pModel.setFilter(QObject::tr("cam_dev_id = '%1'").arg(camSdkRec.str_cam_dev_id));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
QSqlRecord rec = pModel.record(0);
|
rec.setValue("cam_dev_id", camSdkRec.str_cam_dev_id);
|
rec.setValue("sdks", camSdkRec.str_sdks);
|
rec.setValue("det_thr", camSdkRec.str_det_thr);
|
rec.setValue("cmp_thr", camSdkRec.str_cmp_thr);
|
rec.setValue("reserved", camSdkRec.str_reserved);
|
|
int rowCount = pModel.rowCount();
|
if (rowCount == 0) {
|
pModel.insertRecord(-1, rec);
|
} else if (rowCount > 0) {
|
pModel.setRecord(0, rec);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("updateLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
//查询摄像机信息
|
Record_Cam_Sdk LDBTool::searchCamSdkTableByCamId(QString strCamId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
Record_Cam_Sdk lRec;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_sdk");
|
pModel.setFilter(QObject::tr("cam_dev_id = '%1'").arg(strCamId));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
QSqlRecord rec = pModel.record(0);
|
lRec.n_id = rec.value("id").toInt();
|
lRec.str_cam_dev_id = rec.value("cam_dev_id").toString();
|
lRec.str_sdks = rec.value("sdks").toString();
|
lRec.str_det_thr = rec.value("det_thr").toString();
|
lRec.str_cmp_thr = rec.value("cmp_thr").toString();
|
lRec.str_reserved = rec.value("reserved").toString();
|
}
|
|
return lRec;
|
}
|
|
//编辑通道
|
bool LDBTool::updateCamAndSdkTable(Record_Cam_Dev camRec, Record_Cam_Sdk camSdkRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel_cam(NULL, m_db);
|
pModel_cam.setTable("cam_dev");
|
pModel_cam.setFilter(QObject::tr("cam_dev_id = '%1'")\
|
.arg(camRec.str_cam_dev_id));
|
pModel_cam.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel_cam.select();
|
|
QSqlRecord rec = pModel_cam.record(0);
|
// rec.setGenerated("id", false);
|
rec.setValue("cam_dev_id", camRec.str_cam_dev_id);
|
rec.setValue("name", camRec.str_name);
|
rec.setValue("addr", camRec.str_addr);
|
rec.setValue("longitude", camRec.str_longitude);
|
rec.setValue("latitude", camRec.str_latitude);
|
rec.setValue("ip", camRec.str_ip);
|
rec.setValue("port", camRec.n_port);
|
rec.setValue("username", camRec.str_username);
|
rec.setValue("password", camRec.str_password);
|
rec.setValue("brand", camRec.str_brand);
|
rec.setValue("reserved", camRec.str_reserved);
|
|
//camsdk
|
QSqlTableModel pModel_sdk(NULL, m_db);
|
pModel_sdk.setTable("cam_sdk");
|
pModel_sdk.setFilter(QObject::tr("cam_dev_id = '%1'")\
|
.arg(camRec.str_cam_dev_id));
|
pModel_sdk.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel_sdk.select();
|
|
QSqlRecord rec_sdk = pModel_sdk.record(0);
|
// rec_sdk.setGenerated("id", false);
|
rec_sdk.setValue("cam_dev_id", camSdkRec.str_cam_dev_id);
|
rec_sdk.setValue("sdks", camSdkRec.str_sdks);
|
rec_sdk.setValue("det_thr", camSdkRec.str_det_thr);
|
rec_sdk.setValue("cmp_thr", camSdkRec.str_cmp_thr);
|
rec_sdk.setValue("reserved", camSdkRec.str_reserved);
|
|
int rowCount = pModel_cam.rowCount();
|
if (rowCount == 0) {
|
pModel_cam.insertRecord(-1, rec);
|
} else if (rowCount > 0) {
|
pModel_cam.setRecord(0, rec);//TODO
|
}
|
|
rowCount = pModel_sdk.rowCount();
|
if (rowCount == 0) {
|
pModel_sdk.insertRecord(-1, rec_sdk);
|
} else if (rowCount > 0) {
|
pModel_sdk.setRecord(0, rec_sdk);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel_cam.submitAll() && pModel_sdk.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable ,pModel_chn or pModel_sdk Error: " \
|
<< pModel_cam.lastError().text().toStdString() \
|
<< pModel_sdk.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("updateLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
///
|
/// \brief insertChnSdkTable
|
/// \param chnSdkRec
|
/// \return
|
///
|
bool LDBTool::insertChnSdkTable(Record_Chn_Sdk chnSdkRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("chn_sdk");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
|
QSqlRecord rec = pModel.record();
|
rec.setGenerated("id", false);
|
rec.setValue("storage_dev_id", chnSdkRec.str_storage_dev_id);
|
rec.setValue("chn", chnSdkRec.n_chn);
|
rec.setValue("sdks", chnSdkRec.str_sdks);
|
rec.setValue("det_thr", chnSdkRec.str_det_thr);
|
rec.setValue("cmp_thr", chnSdkRec.str_cmp_thr);
|
// rec.setValue("cam_dev_id", chnSdkRec.str_cam_dev_id);
|
rec.setValue("reserved", chnSdkRec.str_reserved);
|
|
pModel.insertRecord(-1, rec);//TODO
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("insertLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("insertLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::deleteChnSdkTable(QString strDeviceId, int nChannelId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("chn_sdk");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1' and chn = '%2'")\
|
.arg(strDeviceId).arg(nChannelId));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
|
if (rowCount >= 1) {
|
for (int i = 0; i < rowCount; i++) {
|
pModel.removeRow(i);//TODO
|
}
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("deleteLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("deleteLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
bool LDBTool::updateChnSdkTable(Record_Chn_Sdk chnSdkRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("chn_sdk");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1' and chn = '%2'")\
|
.arg(chnSdkRec.str_storage_dev_id).arg(chnSdkRec.n_chn));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
QSqlRecord rec = pModel.record(0);
|
// rec.setGenerated("id", false);
|
rec.setValue("storage_dev_id", chnSdkRec.str_storage_dev_id);
|
rec.setValue("chn", chnSdkRec.n_chn);
|
rec.setValue("sdks", chnSdkRec.str_sdks);
|
rec.setValue("det_thr", chnSdkRec.str_det_thr);
|
rec.setValue("cmp_thr", chnSdkRec.str_cmp_thr);
|
// rec.setValue("cam_dev_id", chnSdkRec.str_cam_dev_id);
|
rec.setValue("reserved", chnSdkRec.str_reserved);
|
|
int rowCount = pModel.rowCount();
|
if (rowCount == 0) {
|
pModel.insertRecord(-1, rec);
|
} else if (rowCount > 0) {
|
pModel.setRecord(0, rec);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("updateLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
std::list<Record_Chn_Sdk> LDBTool::searchChnSdkTableAll(void) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
std::list<Record_Chn_Sdk> lst;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("chn_sdk");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
for (int i = 0; i < rowCount; ++i) {
|
Record_Chn_Sdk lRec;
|
QSqlRecord rec = pModel.record(i);
|
lRec.n_id = rec.value("id").toInt();
|
lRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
lRec.n_chn = rec.value("chn").toInt();
|
lRec.str_sdks = rec.value("sdks").toString();
|
lRec.str_det_thr = rec.value("det_thr").toString();
|
lRec.str_cmp_thr = rec.value("cmp_thr").toString();
|
// lRec.str_cam_dev_id = rec.value("cam_dev_id").toString();
|
lRec.str_reserved = rec.value("reserved").toString();
|
lst.push_back(lRec);
|
}
|
}
|
|
return lst;
|
}
|
|
Record_Chn_Sdk LDBTool::searchChnSdkTableByChannelId(QString strDeviceId, int nChannelId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
Record_Chn_Sdk lRec;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("chn_sdk");
|
pModel.setFilter(QObject::tr("storage_dev_id = '%1' and chn = '%2'")\
|
.arg(strDeviceId).arg(nChannelId));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
QSqlRecord rec = pModel.record(0);
|
lRec.n_id = rec.value("id").toInt();
|
lRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
lRec.n_chn = rec.value("chn").toInt();
|
lRec.str_sdks = rec.value("sdks").toString();
|
lRec.str_det_thr = rec.value("det_thr").toString();
|
lRec.str_cmp_thr = rec.value("cmp_thr").toString();
|
// lRec.str_cam_dev_id = rec.value("cam_dev_id").toString();
|
lRec.str_reserved = rec.value("reserved").toString();
|
}
|
|
return lRec;
|
}
|
|
////查询摄像机信息
|
//Record_Chn_Sdk LDBTool::searchChnSdkTableByCam(QString strCamId)
|
//{
|
// QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
// Record_Chn_Sdk lRec;
|
// QSqlTableModel pModel(NULL, m_db);
|
// pModel.setTable("chn_sdk");
|
// pModel.setFilter(QObject::tr("cam_dev_id = '%1'").arg(strCamId));
|
// pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
// pModel.select();
|
//
|
// int rowCount = pModel.rowCount();
|
// if (rowCount > 0) {
|
// QSqlRecord rec = pModel.record(0);
|
// lRec.n_id = rec.value("id").toInt();
|
// lRec.str_storage_dev_id = rec.value("storage_dev_id").toString();
|
// lRec.n_chn = rec.value("chn").toInt();
|
// lRec.str_sdks = rec.value("sdks").toString();
|
// lRec.str_det_thr = rec.value("det_thr").toString();
|
// lRec.str_cmp_thr = rec.value("cmp_thr").toString();
|
// lRec.str_cam_dev_id = rec.value("cam_dev_id").toString();
|
// lRec.str_reserved = rec.value("reserved").toString();
|
// }
|
//
|
// return lRec;
|
//}
|
|
//编辑通道
|
bool LDBTool::updateDevChnAndSdk(Record_Cam_Chn channelRec, Record_Chn_Sdk chnSdkRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel_chn(NULL, m_db);
|
pModel_chn.setTable("cam_chn");
|
pModel_chn.setFilter(QObject::tr("storage_dev_id = '%1' and chn = '%2'")\
|
.arg(channelRec.str_storage_dev_id).arg(channelRec.n_chn));
|
pModel_chn.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel_chn.select();
|
|
QSqlRecord rec = pModel_chn.record(0);
|
// rec.setGenerated("id", false);
|
rec.setValue("storage_dev_id", channelRec.str_storage_dev_id);
|
rec.setValue("chn", channelRec.n_chn);
|
rec.setValue("name", channelRec.str_name);
|
rec.setValue("addr", channelRec.str_addr);
|
rec.setValue("longitude", channelRec.str_longitude);
|
rec.setValue("latitude", channelRec.str_latitude);
|
rec.setValue("do_time", channelRec.tim_do_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec.setValue("update_time", channelRec.tim_update_time.toString("yyyy-MM-dd hh:mm:ss"));
|
rec.setValue("reserved", channelRec.str_reserved);
|
|
//chnsdk
|
QSqlTableModel pModel_sdk(NULL, m_db);
|
pModel_sdk.setTable("chn_sdk");
|
pModel_sdk.setFilter(QObject::tr("storage_dev_id = '%1' and chn = '%2'")\
|
.arg(chnSdkRec.str_storage_dev_id).arg(chnSdkRec.n_chn));
|
pModel_sdk.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel_sdk.select();
|
|
QSqlRecord rec_sdk = pModel_sdk.record(0);
|
// rec_sdk.setGenerated("id", false);
|
rec_sdk.setValue("storage_dev_id", chnSdkRec.str_storage_dev_id);
|
rec_sdk.setValue("chn", chnSdkRec.n_chn);
|
rec_sdk.setValue("sdks", chnSdkRec.str_sdks);
|
rec_sdk.setValue("det_thr", chnSdkRec.str_det_thr);
|
rec_sdk.setValue("cmp_thr", chnSdkRec.str_cmp_thr);
|
rec_sdk.setValue("reserved", chnSdkRec.str_reserved);
|
|
int rowCount = pModel_chn.rowCount();
|
if (rowCount == 0) {
|
pModel_chn.insertRecord(-1, rec);
|
} else if (rowCount > 0) {
|
pModel_chn.setRecord(0, rec);//TODO
|
}
|
|
rowCount = pModel_sdk.rowCount();
|
if (rowCount == 0) {
|
pModel_sdk.insertRecord(-1, rec_sdk);
|
} else if (rowCount > 0) {
|
pModel_sdk.setRecord(0, rec_sdk);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
if (pModel_chn.submitAll() && \
|
pModel_sdk.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
std::string warning_str = " No Fields to update";
|
std::string ok_str = " ";
|
if ((pModel_chn.lastError().text().toStdString() == warning_str) || \
|
(pModel_chn.lastError().text().toStdString() == ok_str)) {
|
if ((pModel_sdk.lastError().text().toStdString() == warning_str) || \
|
(pModel_sdk.lastError().text().toStdString() == ok_str)) {
|
m_db.commit();//提交
|
return true;
|
}
|
}
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable ,pModel_chn or pModel_sdk Error: " \
|
<< pModel_chn.lastError().text().toStdString() \
|
<< pModel_sdk.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("updateLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
////编辑通道
|
//bool LDBTool::updateCamAndSdk(Record_Cam_Chn channelRec, Record_Chn_Sdk chnSdkRec)
|
//{
|
// QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
// QSqlTableModel pModel_chn(NULL, m_db);
|
// pModel_chn.setTable("cam_chn");
|
// pModel_chn.setFilter(QObject::tr("cam_dev_id = '%1'")\
|
// .arg(channelRec.str_cam_dev_id));
|
// pModel_chn.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
// pModel_chn.select();
|
//
|
// QSqlRecord rec = pModel_chn.record(0);
|
//// rec.setGenerated("id", false);
|
// rec.setValue("cam_dev_id", channelRec.str_cam_dev_id);
|
// rec.setValue("name", channelRec.str_name);
|
// rec.setValue("addr", channelRec.str_addr);
|
// rec.setValue("longitude", channelRec.str_longitude);
|
// rec.setValue("latitude", channelRec.str_latitude);
|
// rec.setValue("ip", channelRec.str_ip);
|
// rec.setValue("port", channelRec.n_port);
|
// rec.setValue("username", channelRec.str_username);
|
// rec.setValue("password", channelRec.str_password);
|
// rec.setValue("brand", channelRec.str_brand);
|
// rec.setValue("reserved", channelRec.str_reserved);
|
//
|
// //chnsdk
|
// QSqlTableModel pModel_sdk(NULL, m_db);
|
// pModel_sdk.setTable("chn_sdk");
|
// pModel_sdk.setFilter(QObject::tr("cam_dev_id = '%1'")\
|
// .arg(channelRec.str_cam_dev_id));
|
// pModel_sdk.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
// pModel_sdk.select();
|
//
|
// QSqlRecord rec_sdk = pModel_sdk.record(0);
|
//// rec_sdk.setGenerated("id", false);
|
// rec_sdk.setValue("cam_dev_id", chnSdkRec.str_cam_dev_id);
|
// rec_sdk.setValue("sdks", chnSdkRec.str_sdks);
|
// rec_sdk.setValue("det_thr", chnSdkRec.str_det_thr);
|
// rec_sdk.setValue("cmp_thr", chnSdkRec.str_cmp_thr);
|
// rec_sdk.setValue("reserved", chnSdkRec.str_reserved);
|
//
|
// int rowCount = pModel_chn.rowCount();
|
// if (rowCount == 0) {
|
// pModel_chn.insertRecord(-1, rec);
|
// } else if (rowCount > 0) {
|
// pModel_chn.setRecord(0, rec);//TODO
|
// }
|
//
|
// rowCount = pModel_sdk.rowCount();
|
// if (rowCount == 0) {
|
// pModel_sdk.insertRecord(-1, rec_sdk);
|
// } else if (rowCount > 0) {
|
// pModel_sdk.setRecord(0, rec_sdk);//TODO
|
// }
|
//
|
// m_db.transaction();//开始事务操作
|
//
|
// if (pModel_chn.submitAll() && pModel_sdk.submitAll()) {
|
// m_db.commit();//提交
|
// return true;
|
// } else {
|
// m_db.rollback();//回滚
|
// ERR("updateLDeviceTable ,pModel_chn or pModel_sdk Error: " \
|
// << pModel_chn.lastError().text().toStdString() \
|
// << pModel_sdk.lastError().text().toStdString());
|
// // QMessageBox::warning(NULL,QObject::tr("updateLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
// return false;
|
// }
|
//}
|
|
//config 修改ip 端口等配置信息
|
bool LDBTool::updateConfigTableByServerInfo(Record_Config configRec) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("config");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
QSqlRecord rec = pModel.record(0);
|
rec.setValue("alarm_ip", configRec.str_alarm_ip);
|
rec.setValue("alarm_port", configRec.n_alarm_port);
|
rec.setValue("web_pic_ip", configRec.str_web_pic_ip);
|
rec.setValue("web_pic_port", configRec.n_web_pic_port);
|
rec.setValue("es_pic_ip", configRec.str_es_pic_ip);
|
rec.setValue("es_pic_port", configRec.n_es_pic_port);
|
|
int rowCount = pModel.rowCount();
|
if (rowCount == 0) {
|
pModel.insertRecord(-1, rec);
|
} else if (rowCount > 0) {
|
pModel.setRecord(0, rec);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("updateLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
//config device type
|
bool LDBTool::updateConfigTableByDevType(int devType) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("config");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
QSqlRecord rec = pModel.record(0);
|
rec.setValue("dev_type", devType);
|
|
int rowCount = pModel.rowCount();
|
if (rowCount == 0) {
|
pModel.insertRecord(-1, rec);
|
} else if (rowCount > 0) {
|
pModel.setRecord(0, rec);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
return false;
|
}
|
}
|
|
//config device type
|
int LDBTool::searchDevTypeFromConfigTable(void) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("config");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int devType = 0;
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
QSqlRecord rec = pModel.record(0);
|
devType = rec.value("dev_type").toInt();
|
}
|
|
return devType;
|
}
|
|
|
//config 修改裁剪视频时长
|
bool LDBTool::updateConfigTableByCutDuration(int n_cut_max_duration, int n_cut_min_duration) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("config");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
QSqlRecord rec = pModel.record(0);
|
rec.setValue("cut_max_duration", n_cut_max_duration);
|
rec.setValue("cut_min_duration", n_cut_min_duration);
|
while (pModel.canFetchMore()) {
|
pModel.fetchMore();
|
}
|
|
int rowCount = pModel.rowCount();
|
if (rowCount == 0) {
|
pModel.insertRecord(-1, rec);
|
} else if (rowCount > 0) {
|
pModel.setRecord(0, rec);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
// QMessageBox::warning(NULL,QObject::tr("updateLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
|
return false;
|
}
|
}
|
|
//config 查询ip 端口等配置信息
|
Record_Config LDBTool::searchConfigTableWithinServerInfo(void) {
|
Record_Config lRec;
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("config");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
QSqlRecord rec = pModel.record(0);
|
lRec.str_alarm_ip = rec.value("alarm_ip").toString();
|
lRec.n_alarm_port = rec.value("alarm_port").toInt();
|
lRec.str_web_pic_ip = rec.value("web_pic_ip").toString();
|
lRec.n_web_pic_port = rec.value("web_pic_port").toInt();
|
lRec.str_es_pic_ip = rec.value("es_pic_ip").toString();
|
lRec.n_es_pic_port = rec.value("es_pic_port").toInt();
|
lRec.n_cut_max_duration = rec.value("cut_max_duration").toInt();
|
lRec.n_cut_min_duration = rec.value("cut_min_duration").toInt();
|
lRec.dev_name = rec.value("dev_name").toString();
|
}
|
lRec.dev_id = QString::fromStdString(appConfig.getStringProperty("DEV_ID"));
|
if (lRec.n_cut_max_duration == 0) {
|
lRec.n_cut_max_duration = 20;
|
}
|
if (lRec.n_cut_min_duration == 0) {
|
lRec.n_cut_min_duration = 4;
|
}
|
return lRec;
|
}
|
|
|
bool LDBTool::insertRecordVedioPath(QString pathKey, QString filePath) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("name_key_match");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
|
QSqlRecord rec = pModel.record();
|
rec.setGenerated("id", false);
|
rec.setValue("key", pathKey);
|
rec.setValue("filename", filePath);
|
pModel.insertRecord(-1, rec);//TODO
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
DBG("srtPath=" << filePath.toStdString() << ", m_uuid=" << pathKey.toStdString());
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("insertRecordVedioPath ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
|
return false;
|
}
|
}
|
|
QString LDBTool::searchRecordVedioPathByKey(QString pathKey) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("name_key_match");
|
pModel.setFilter(QObject::tr("key = '%1' ").arg(pathKey));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
QString path;
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
QSqlRecord rec = pModel.record(0);
|
path = rec.value("filename").toString();
|
}
|
|
return path;
|
}
|
|
|
bool LDBTool::updateDevNameConfigTable(QString dev_name) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("config");
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
QSqlRecord rec = pModel.record(0);
|
rec.setValue("dev_name", dev_name);
|
|
int rowCount = pModel.rowCount();
|
if (rowCount == 0) {
|
pModel.insertRecord(-1, rec);
|
} else if (rowCount > 0) {
|
pModel.setRecord(0, rec);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateDevNameConfigTable ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
return false;
|
}
|
}
|
|
|
bool LDBTool::updateCameraWeekRule(const LActRuleWeekRecord &weekRule) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("rule_week");
|
pModel.setFilter(QObject::tr("camera_id = '%1' and type='%2' and sdk_type='%3'").arg(weekRule.m_strCamId).arg(
|
weekRule.m_nType).arg(weekRule.m_nSdkType));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
QSqlRecord rec = pModel.record(0);
|
//rec.setGenerated("id", false);
|
rec.setValue("camera_id", weekRule.m_strCamId);
|
rec.setValue("sdk_type", weekRule.m_nSdkType);
|
rec.setValue("type", weekRule.m_nType);
|
rec.setValue("begin_time", weekRule.m_strBegin);
|
rec.setValue("end_time", weekRule.m_strEnd);
|
|
int rowCount = pModel.rowCount();
|
if (rowCount == 0) {
|
pModel.insertRecord(-1, rec);
|
} else if (rowCount > 0) {
|
pModel.setRecord(0, rec);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateCameraWeekRule ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
|
return false;
|
}
|
}
|
|
std::vector<LActRuleWeekRecord> LDBTool::searchCameraWeekRuleByCamId(const QString &camId, const int &sdkType) {
|
std::vector<LActRuleWeekRecord> vecWeek;
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("rule_week");
|
pModel.setFilter(QObject::tr("camera_id = '%1' and sdk_type='%2'").arg(camId).arg(sdkType));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
for (int i = 0; i < rowCount; ++i) {
|
LActRuleWeekRecord lActRuleWeekRec;
|
QSqlRecord rec = pModel.record(i);
|
lActRuleWeekRec.m_nSdkType = rec.value("sdk_type").toInt();
|
lActRuleWeekRec.m_nType = rec.value("type").toInt();
|
lActRuleWeekRec.m_strBegin = rec.value("begin_time").toString();
|
lActRuleWeekRec.m_strEnd = rec.value("end_time").toString();
|
lActRuleWeekRec.m_strCamId = rec.value("camera_id").toString();
|
vecWeek.push_back(lActRuleWeekRec);
|
}
|
|
return vecWeek;
|
}
|
|
|
bool LDBTool::updateSdkRule(const SdkRule &sdkRule) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("sdk_rule");
|
pModel.setFilter(QObject::tr("cam_id = '%1' and sdk_type = '%2' ").arg(sdkRule.strCamId).arg(sdkRule.nSdkType));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
QSqlRecord rec = pModel.record(0);
|
rec.setValue("cam_id", sdkRule.strCamId);
|
rec.setValue("sdk_type", sdkRule.nSdkType);
|
rec.setValue("area", sdkRule.strAreas);
|
rec.setValue("ex_area", sdkRule.strExAreas);
|
rec.setValue("line", sdkRule.strLine);
|
rec.setValue("ex_line", sdkRule.strExLine);
|
rec.setValue("alarm_delay", sdkRule.nTriggerDelay);
|
rec.setValue("tolerance", sdkRule.nTriggerTolerance);
|
rec.setValue("alarm_num_upper", sdkRule.nAlarmNumUpperLimit);
|
rec.setValue("alarm_num_lower", sdkRule.nAlarmNumLowerLimit);
|
rec.setValue("broadcast_area", sdkRule.strBroadcast);
|
rec.setValue("is_run", sdkRule.nIsRun);
|
rec.setValue("img_threshold", sdkRule.nThreshold);
|
rec.setValue("img_quality", sdkRule.nQuality);
|
|
int rowCount = pModel.rowCount();
|
if (rowCount == 0) {
|
pModel.insertRecord(-1, rec);
|
} else if (rowCount > 0) {
|
pModel.setRecord(0, rec);//TODO
|
}
|
|
m_db.transaction();//开始事务操作
|
|
if (pModel.submitAll()) {
|
m_db.commit();//提交
|
return true;
|
} else {
|
m_db.rollback();//回滚
|
ERR("updateSdkRule ,pModel_load Error: " << pModel.lastError().text().toStdString());
|
return false;
|
}
|
}
|
|
SdkRuleMap LDBTool::searchSdkRuleByCamId(const QString &camId) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("sdk_rule");
|
pModel.setFilter(QObject::tr("cam_id = '%1' ").arg(camId));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
std::map<int, SdkRule> ruleMap;
|
|
//std::vector<SdkRule> ruleVec;
|
int rowCount = pModel.rowCount();
|
for (int i = 0; i < rowCount; ++i) {
|
SdkRule rule;
|
QSqlRecord rec = pModel.record(i);
|
rule.strCamId = rec.value("cam_id").toString();
|
rule.strAreas = rec.value("area").toString();
|
rule.strExAreas = rec.value("ex_area").toString();
|
rule.strLine = rec.value("line").toString();
|
rule.strExLine = rec.value("ex_line").toString();
|
rule.nTriggerDelay = rec.value("alarm_delay").toInt();
|
rule.nTriggerTolerance = rec.value("tolerance").toInt();
|
rule.nQuality = rec.value("img_quality").toInt();
|
rule.nThreshold = rec.value("img_threshold").toInt();
|
rule.nAlarmNumUpperLimit = rec.value("alarm_num_upper").toInt();
|
rule.nAlarmNumLowerLimit = rec.value("alarm_num_lower").toInt();
|
rule.strBroadcast = rec.value("broadcast_area").toString();
|
rule.nIsRun = rec.value("is_run").toInt();
|
rule.nSdkType = rec.value("sdk_type").toInt();
|
ruleMap[rule.nSdkType] = rule;
|
//ruleVec.push_back(rule);
|
}
|
|
return ruleMap;
|
}
|
|
|
/**
|
* type 0 rtsp, 1 gb28181
|
*/
|
std::list<Record_Cam_Dev> LDBTool::searchCamDevTableByType(int type) {
|
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
|
std::list<Record_Cam_Dev> lst;
|
QSqlTableModel pModel(NULL, m_db);
|
pModel.setTable("cam_dev");
|
pModel.setFilter(QObject::tr(
|
(string("cam_dev_id != '' and cam_dev_id is not null and type='") + to_string(type) + "'").c_str()));
|
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
|
pModel.select();
|
|
int rowCount = pModel.rowCount();
|
if (rowCount > 0) {
|
for (int i = 0; i < rowCount; ++i) {
|
Record_Cam_Dev lChannelRec;
|
QSqlRecord rec = pModel.record(i);
|
lChannelRec.n_id = rec.value("id").toInt();
|
lChannelRec.str_cam_dev_id = rec.value("cam_dev_id").toString();
|
lChannelRec.str_name = rec.value("name").toString();
|
lChannelRec.str_addr = rec.value("addr").toString();
|
lChannelRec.str_longitude = rec.value("longitude").toString();
|
lChannelRec.str_latitude = rec.value("latitude").toString();
|
lChannelRec.str_ip = rec.value("ip").toString();
|
lChannelRec.n_port = rec.value("port").toInt();
|
lChannelRec.str_username = rec.value("username").toString();
|
lChannelRec.str_password = rec.value("password").toString();
|
lChannelRec.str_brand = rec.value("brand").toString();
|
lChannelRec.str_reserved = rec.value("reserved").toString();
|
lChannelRec.n_type = rec.value("type").toInt();
|
lst.push_back(lChannelRec);
|
}
|
}
|
|
return lst;
|
}
|