派生自 development/c++

xuxiuxi
2019-03-04 17675f1c6447b6e014b520608ce6d5f1f2e9707a
QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
@@ -453,7 +453,39 @@
        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");
@@ -2700,3 +2732,40 @@
    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();
            lst.push_back(lChannelRec);
        }
    }
    return lst;
}