/************************************************************* /* Copyright (C), 2008-2010, StoneU Tech. Co., Ltd. /* 文件名: DBInterface.h /* 作者: Jesse /* 创建日期: 2010-08-02 /* 版本号: V1.0 /* 描述: 实现多种数据库的支持 /* 其它: /* 主要类模块: CDBInterface /* 历史修改记录: 作者 时间 版本 描述 Jesse 10/08/02 1.0 创建这个模块 ***************************************************************/ #include "stdafx.h" #include "DBInterface.h" #include "Global.h" #include "Syslib.h" namespace DBInterface { CDBInterface* CDBInterface::m_pDBInterface = NULL; // 静态成员函数,提供全局访问的接口 CDBInterface* CDBInterface::GetInstancePtr() { if( NULL == m_pDBInterface ) { m_pDBInterface = new CDBInterface(); } return m_pDBInterface; } // 设置数据库类型 void CDBInterface::SetDBType(char *pDBType) { strcpy(m_chDBType, pDBType); } //获取表最大的ID, 通用函数 INT CDBInterface::GetMaxID( CHAR *pTableName, CHAR *pFieldName, CHAR *pMaxID ) { CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; list list1; list::iterator it; sprintf(strSQLText, "select max(%s) as maxid from %s", pFieldName, pTableName); int nRet = CDBConnection::GetInstancePtr()->GetFieldValueList1(strSQLText, list1); if( 0 == list1.size() ) { return 0; } if( nRet != -1 ) { strcpy(pMaxID, list1.begin()->c_str()); } for( it = list1.begin(); it != list1.end(); ) { list1.erase(it++); } return nRet; } // 分配用户角色 void CDBInterface::InitUserRoleInfo() { char szUid[MAX_UID] = {0}; list list_uid; list::iterator it_uid; int iUIDCount = GetHasPurviewUidList(list_uid); if( iUIDCount <= 0 || 0 == list_uid.size() ) { return; } for( it_uid = list_uid.begin(); it_uid != list_uid.end(); ) { USERROLEINFO tagUserRoleInfo; USERINFO tagUserInfo; memset(&tagUserRoleInfo, 0, sizeof(USERROLEINFO)); memset(&tagUserInfo, 0, sizeof(USERINFO)); strcpy( szUid, (*it_uid++).c_str() ); strcpy( tagUserRoleInfo.szDevUID, szUid ); list list_tel, list_mobile, list_fax, list_email; list::iterator it_tel, it_mobile, it_fax, it_email; int iUserCount = GetUserInfoList(szUid, list_tel, list_mobile, list_fax, list_email); for( it_tel = list_tel.begin(), it_mobile = list_mobile.begin(), it_fax = list_fax.begin(), it_email = list_email.begin(); it_tel != list_tel.end(), it_mobile != list_mobile.end(), it_fax != list_fax.end(), it_email != list_email.end(); ) { strcpy(tagUserInfo.szTel, (*it_tel++).c_str()); strcpy(tagUserInfo.szMobileTel, (*it_mobile++).c_str()); strcpy(tagUserInfo.szFax, (*it_fax++).c_str()); strcpy(tagUserInfo.szEmail, (*it_email++).c_str()); tagUserRoleInfo.vtUserInfo.push_back(tagUserInfo); //LOG4C((LOG_NOTICE, "tel=%s, MobileTel=%s", tagUserInfo.szTel, tagUserInfo.szMobileTel)); } //LOG4C((LOG_NOTICE, "tagUserRoleInfo.szDevUID=%s", szUid)); g_vtUserRoleInfo.push_back( tagUserRoleInfo ); //释放 for( it_tel = list_tel.begin(), it_mobile = list_mobile.begin(), it_fax = list_fax.begin(), it_email = list_email.begin(); it_tel != list_tel.end(), it_mobile != list_mobile.end(), it_fax != list_fax.end(), it_email != list_email.end(); ) { list_tel.erase(it_tel++); list_mobile.erase(it_mobile++); list_fax.erase(it_fax++); list_email.erase(it_email++); tagUserRoleInfo.vtUserInfo.pop_back(); } } for( it_uid = list_uid.begin(); it_uid != list_uid.end(); ) { list_uid.erase(it_uid++); } } // 回收用户角色 void CDBInterface::UnInitUserRoleInfo() { for( int i = 0; i < g_vtUserRoleInfo.size(); i++ ) { for( int j = 0; j < g_vtUserRoleInfo[i].vtUserInfo.size(); j++ ) { g_vtUserRoleInfo[i].vtUserInfo.pop_back(); } g_vtUserRoleInfo.pop_back(); } } // 获取有权限的设备UID int CDBInterface::GetHasPurviewUidList(list& list1) { CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; sprintf(strSQLText, "select uid from t_role_equip group by uid"); //LOG4C((LOG_NOTICE, "%s", strSQLText)); int nRet = CDBConnection::GetInstancePtr()->GetFieldValueList1(strSQLText, list1); return nRet; } // 获取具有某个设备权限的用户信息 int CDBInterface::GetUserInfoList(char *pUid, list& list1, list& list2, list& list3, list& list4) { CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; if (!_stricmp(m_chDBType, "SQL SERVER")) { sprintf(strSQLText, "select tel, mobiletel, fax, email from " \ "t_role_equip a left outer join t_user_info b on a.userid = b.uid " \ "where a.uid = \'%s\' and b.status = 0 or b.status is null and b.uid <> 'admin'", pUid); } else if (!_stricmp(m_chDBType, "ACCESS97")) { sprintf(strSQLText, "select tel, mobiletel, fax, email from " \ "t_role_equip a left outer join t_user_info b on a.userid = b.uid " \ "where a.uid = \'%s\' and b.status = 0 or b.status is null and b.uid <> 'admin'", pUid); } else if (!_stricmp(m_chDBType, "ACCESS2000")) { sprintf(strSQLText, "select tel, mobiletel, fax, email from " \ "t_role_equip a left outer join t_user_info b on a.userid = b.uid " \ "where a.uid = \'%s\' and b.status = 0 or b.status is null and b.uid <> 'admin'", pUid); } else if(!_stricmp(m_chDBType, "PGSQL")) { sprintf(strSQLText, "select tel, mobiletel, fax, email from " \ "t_role_equip a left outer join t_user_info b on a.userid = b.uid " \ "where a.uid = \'%s\' and b.status = false or b.status is null and b.uid <> 'admin'", pUid); } //LOG4C((LOG_NOTICE, "%s", strSQLText)); int nRet = CDBConnection::GetInstancePtr()->GetFieldValueList4(strSQLText, list1, list2, list3, list4); return nRet; } // 获取用户信息 int CDBInterface::GetUserInfoList(list& list1, list& list2, list& list3, list& list4) { CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; if (!_stricmp(m_chDBType, "SQL SERVER")) { sprintf(strSQLText, "select tel, mobiletel, fax, email from t_user_info where status = 0 or status is null and uid <> 'admin'"); } else if (!_stricmp(m_chDBType, "ACCESS97")) { sprintf(strSQLText, "select tel, mobiletel, fax, email from t_user_info where status = 0 or status is null and uid <> 'admin'"); } else if (!_stricmp(m_chDBType, "ACCESS2000")) { sprintf(strSQLText, "select tel, mobiletel, fax, email from t_user_info where status = 0 or status is null and uid <> 'admin'"); } else if(!_stricmp(m_chDBType, "PGSQL")) { sprintf(strSQLText, "select tel, mobiletel, fax, email from t_user_info where status = false or status is null and uid <> 'admin'"); } int nRet = CDBConnection::GetInstancePtr()->GetFieldValueList4(strSQLText, list1, list2, list3, list4); return nRet; } //得到时间计划 INT CDBInterface::GetDatePlan( int nPlanType, CHAR *pPlanID, unsigned char nBufDate[7][24] ) { CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; list list1, list2, list3, list4; list::iterator it_list1, it_list2, it_list3, it_list4; sprintf(strSQLText, "select starttime, endtime, startweekofday, endweekofday " \ "from t_plan_info where planid=\'%s\' and plantype = %d", pPlanID, nPlanType); int nRet = CDBConnection::GetInstancePtr()->GetFieldValueList4(strSQLText, list1, list2, list3, list4); if( list1.size() == 0 || list2.size() == 0 || list3.size() == 0 || list4.size() == 0 ) { return 0; } if( nRet != -1 ) { for( it_list1 = list1.begin(), it_list2 = list2.begin(), it_list3 = list3.begin(), it_list4 = list4.begin(); it_list1 != list1.end() && it_list2 != list2.end() && it_list3 != list3.end() && it_list4 != list4.end(); it_list1++, it_list2++, it_list3++, it_list4++) { for( int i = atoi((*it_list3).c_str()); i < atoi((*it_list4).c_str()) + 1; i++ ) { for( int j = atoi((*it_list1).c_str()); j < atoi((*it_list2).c_str()) + 1; j++ ) { nBufDate[i][j] = 15; } } } } for( it_list1 = list1.begin(), it_list2 = list2.begin(), it_list3 = list3.begin(), it_list4 = list4.begin(); it_list1 != list1.end(), it_list2 != list2.end(), it_list3 != list3.end(), it_list4 != list4.end(); ) { list1.erase(it_list1++); list2.erase(it_list2++); list3.erase(it_list3++); list4.erase(it_list4++); } return nRet; } //得到时间计划 INT CDBInterface::GetDatePlan( int nPlanType, CHAR *pUid, int nVarID, unsigned char nBufDate[7][24] ) { CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; list list1, list2, list3, list4; list::iterator it_list1, it_list2, it_list3, it_list4; sprintf(strSQLText, "select starttime, endtime, startweekofday, endweekofday " \ "from t_plan_info where uid=\'%s\' and varid = %d and plantype = %d", pUid, nVarID, nPlanType); int nRet = CDBConnection::GetInstancePtr()->GetFieldValueList4(strSQLText, list1, list2, list3, list4); if( list1.size() == 0 || list2.size() == 0 || list3.size() == 0 || list4.size() == 0 ) { return 0; } if( nRet != -1 ) { for( it_list1 = list1.begin(), it_list2 = list2.begin(), it_list3 = list3.begin(), it_list4 = list4.begin(); it_list1 != list1.end() && it_list2 != list2.end() && it_list3 != list3.end() && it_list4 != list4.end(); it_list1++, it_list2++, it_list3++, it_list4++ ) { for( int i = atoi((*it_list3).c_str()); i < atoi((*it_list4).c_str()) + 1; i++ ) { for( int j = atoi((*it_list1).c_str()); j < atoi((*it_list2).c_str()) + 1; j++ ) { nBufDate[i][j] = 15; } } } } for( it_list1 = list1.begin(), it_list2 = list2.begin(), it_list3 = list3.begin(), it_list4 = list4.begin(); it_list1 != list1.end(), it_list2 != list2.end(), it_list3 != list3.end(), it_list4 != list4.end(); ) { list1.erase(it_list1++); list2.erase(it_list2++); list3.erase(it_list3++); list4.erase(it_list4++); } return nRet; } // 获取设备资料 INT CDBInterface::GetDevInfo() { CHAR strSQLText[MAX_SQL_LENGTH + 1] = {0}; list list_dev_id, list_uid, list_port, list_device_name, list_device_baudrate; list list_commmode, list_devide_addr, list_is_use, list_protocol_dll_name; list list_special_device, list_data_bit, list_stop_bit, list_parity_bit, list_ip, list_ip_port, list_ini_name; list list_str_reserved1, list_str_reserved2, list_str_reserved3, list_str_reserved4, list_str_reserved5; list list_str_reserved6, list_str_reserved7, list_str_reserved8, list_str_reserved9, list_str_reserved10; list list_int_reserved1, list_int_reserved2, list_int_reserved3, list_int_reserved4, list_int_reserved5; list list_int_reserved6, list_int_reserved7, list_int_reserved8, list_int_reserved9, list_int_reserved10; list list_bool_reserved1, list_bool_reserved2, list_bool_reserved3, list_bool_reserved4, list_bool_reserved5; list list_bool_reserved6, list_bool_reserved7, list_bool_reserved8, list_bool_reserved9, list_bool_reserved10; list::iterator it_dev_id, it_uid, it_port, it_device_name, it_device_baudrate; list::iterator it_commmode, it_devide_addr, it_is_use, it_protocol_dll_name; list::iterator it_special_device, it_data_bit, it_stop_bit, it_parity_bit, it_ip, it_ip_port, it_ini_name; list::iterator it_str_reserved1, it_str_reserved2, it_str_reserved3, it_str_reserved4, it_str_reserved5; list::iterator it_str_reserved6, it_str_reserved7, it_str_reserved8, it_str_reserved9, it_str_reserved10; list::iterator it_int_reserved1, it_int_reserved2, it_int_reserved3, it_int_reserved4, it_int_reserved5; list::iterator it_int_reserved6, it_int_reserved7, it_int_reserved8, it_int_reserved9, it_int_reserved10; list::iterator it_bool_reserved1, it_bool_reserved2, it_bool_reserved3, it_bool_reserved4, it_bool_reserved5; list::iterator it_bool_reserved6, it_bool_reserved7, it_bool_reserved8, it_bool_reserved9, it_bool_reserved10; sprintf(strSQLText, "select id as devId, uid, port, devicename, baudrate, commmode, devideaddr, isuse, protocoldllname, " \ " specialdevice, databit, stopbit, paritybit, ip, ipport, ininame, " \ " strreserved1, strreserved2, strreserved3, strreserved4, strreserved5, " \ " strreserved6, strreserved7, strreserved8, strreserved9, strreserved10, " \ " intreserved1, intreserved2, intreserved3, intreserved4, intreserved5, " \ " intreserved6, intreserved7, intreserved8, intreserved9, intreserved10, " \ " boolreserved1, boolreserved2, boolreserved3, boolreserved4, boolreserved5, " \ " boolreserved6, boolreserved7, boolreserved8, boolreserved9, boolreserved10 " \ " from t_dev_property where isuse = '1'"); int nRet = CDBConnection::GetInstancePtr()->GetFieldValueList46(strSQLText ,list_dev_id, list_uid, list_port, list_device_name, list_device_baudrate ,list_commmode, list_devide_addr, list_is_use, list_protocol_dll_name ,list_special_device, list_data_bit, list_stop_bit, list_parity_bit, list_ip, list_ip_port, list_ini_name ,list_str_reserved1, list_str_reserved2, list_str_reserved3, list_str_reserved4, list_str_reserved5 ,list_str_reserved6, list_str_reserved7, list_str_reserved8, list_str_reserved9, list_str_reserved10 ,list_int_reserved1, list_int_reserved2, list_int_reserved3, list_int_reserved4, list_int_reserved5 ,list_int_reserved6, list_int_reserved7, list_int_reserved8, list_int_reserved9, list_int_reserved10 ,list_bool_reserved1, list_bool_reserved2, list_bool_reserved3, list_bool_reserved4, list_bool_reserved5 ,list_bool_reserved6, list_bool_reserved7, list_bool_reserved8, list_bool_reserved9, list_bool_reserved10); if( 0 == list_dev_id.size() || 0 == list_uid.size() || 0 == list_port.size() || 0 == list_device_name.size() || 0 == list_device_baudrate.size() || 0 == list_commmode.size() || 0 == list_devide_addr.size() || 0 == list_is_use.size() || 0 == list_protocol_dll_name.size() || 0 == list_special_device.size() || 0 == list_data_bit.size() || 0 == list_stop_bit.size() || 0 == list_parity_bit.size() || 0 == list_ip.size() || 0 == list_ip_port.size() || 0 == list_ini_name.size() || 0 == list_str_reserved1.size() || 0 == list_str_reserved2.size() || 0 == list_str_reserved3.size() || 0 == list_str_reserved4.size() || 0 == list_str_reserved5.size() || 0 == list_str_reserved6.size() || 0 == list_str_reserved7.size() || 0 == list_str_reserved8.size() || 0 == list_str_reserved9.size() || 0 == list_str_reserved10.size() || 0 == list_int_reserved1.size() || 0 == list_int_reserved2.size() || 0 == list_int_reserved3.size() || 0 == list_int_reserved4.size() || 0 == list_int_reserved5.size() || 0 == list_int_reserved6.size() || 0 == list_int_reserved7.size() || 0 == list_int_reserved8.size() || 0 == list_int_reserved9.size() || 0 == list_int_reserved10.size() || 0 == list_bool_reserved1.size() || 0 == list_bool_reserved2.size() || 0 == list_bool_reserved3.size() || 0 == list_bool_reserved4.size() || 0 == list_bool_reserved5.size() || 0 == list_bool_reserved6.size() || 0 == list_bool_reserved7.size() || 0 == list_bool_reserved8.size() || 0 == list_bool_reserved9.size() || 0 == list_bool_reserved10.size() ) { LOG4C((LOG_NOTICE, "GetDevInfo GetFieldValueList46 list size = 0")); return 0; } if( nRet != -1 ) { for( it_dev_id = list_dev_id.begin(), it_uid = list_uid.begin(), it_port = list_port.begin() ,it_device_name = list_device_name.begin(), it_device_baudrate = list_device_baudrate.begin() ,it_commmode = list_commmode.begin(), it_devide_addr = list_devide_addr.begin() ,it_is_use = list_is_use.begin(),it_protocol_dll_name = list_protocol_dll_name.begin() ,it_special_device = list_special_device.begin(), it_data_bit = list_data_bit.begin() ,it_stop_bit = list_stop_bit.begin(), it_parity_bit = list_parity_bit.begin(), it_ip = list_ip.begin() ,it_ip_port = list_ip_port.begin(), it_ini_name = list_ini_name.begin() ,it_str_reserved1 = list_str_reserved1.begin(), it_str_reserved2 = list_str_reserved2.begin() ,it_str_reserved3 = list_str_reserved3.begin(), it_str_reserved4 = list_str_reserved4.begin() ,it_str_reserved5 = list_str_reserved5.begin(), it_str_reserved6 = list_str_reserved6.begin() ,it_str_reserved7 = list_str_reserved7.begin(), it_str_reserved8 = list_str_reserved8.begin() ,it_str_reserved9 = list_str_reserved9.begin(), it_str_reserved10 = list_str_reserved10.begin() ,it_int_reserved1 = list_int_reserved1.begin(), it_int_reserved2 = list_int_reserved2.begin() ,it_int_reserved3 = list_int_reserved3.begin(), it_int_reserved4 = list_int_reserved4.begin() ,it_int_reserved5 = list_int_reserved5.begin(), it_int_reserved6 = list_int_reserved6.begin() ,it_int_reserved7 = list_int_reserved7.begin(), it_int_reserved8 = list_int_reserved8.begin() ,it_int_reserved9 = list_int_reserved9.begin(), it_int_reserved10 = list_int_reserved10.begin() ,it_bool_reserved1 = list_bool_reserved1.begin(), it_bool_reserved2 = list_bool_reserved2.begin() ,it_bool_reserved3 = list_bool_reserved3.begin(), it_bool_reserved4 = list_bool_reserved4.begin() ,it_bool_reserved5 = list_bool_reserved5.begin(), it_bool_reserved6 = list_bool_reserved6.begin() ,it_bool_reserved7 = list_bool_reserved7.begin(), it_bool_reserved8 = list_bool_reserved8.begin() ,it_bool_reserved9 = list_bool_reserved9.begin(), it_bool_reserved10 = list_bool_reserved10.begin(); it_dev_id != list_dev_id.end(), it_uid != list_uid.end(), it_port != list_port.end() ,it_device_name != list_device_name.end(), it_device_baudrate != list_device_baudrate.end() ,it_commmode != list_commmode.end(), it_devide_addr != list_devide_addr.end() ,it_is_use != list_is_use.end(),it_protocol_dll_name != list_protocol_dll_name.end() ,it_special_device != list_special_device.end(), it_data_bit != list_data_bit.end() ,it_stop_bit != list_stop_bit.end(), it_parity_bit != list_parity_bit.end(), it_ip != list_ip.end() ,it_ip_port != list_ip_port.end(), it_ini_name != list_ini_name.end() ,it_str_reserved1 != list_str_reserved1.end(), it_str_reserved2 != list_str_reserved2.end() ,it_str_reserved3 != list_str_reserved3.end(), it_str_reserved4 != list_str_reserved4.end() ,it_str_reserved5 != list_str_reserved5.end(), it_str_reserved6 != list_str_reserved6.end() ,it_str_reserved7 != list_str_reserved7.end(), it_str_reserved8 != list_str_reserved8.end() ,it_str_reserved9 != list_str_reserved9.end(), it_str_reserved10 != list_str_reserved10.end() ,it_int_reserved1 != list_int_reserved1.end(), it_int_reserved2 != list_int_reserved2.end() ,it_int_reserved3 != list_int_reserved3.end(), it_int_reserved4 != list_int_reserved4.end() ,it_int_reserved5 != list_int_reserved5.end(), it_int_reserved6 != list_int_reserved6.end() ,it_int_reserved7 != list_int_reserved7.end(), it_int_reserved8 != list_int_reserved8.end() ,it_int_reserved9 != list_int_reserved9.end(), it_int_reserved10 != list_int_reserved10.end() ,it_bool_reserved1 != list_bool_reserved1.end(), it_bool_reserved2 != list_bool_reserved2.end() ,it_bool_reserved3 != list_bool_reserved3.end(), it_bool_reserved4 != list_bool_reserved4.end() ,it_bool_reserved5 != list_bool_reserved5.end(), it_bool_reserved6 != list_bool_reserved6.end() ,it_bool_reserved7 != list_bool_reserved7.end(), it_bool_reserved8 != list_bool_reserved8.end() ,it_bool_reserved9 != list_bool_reserved9.end(), it_bool_reserved10 != list_bool_reserved10.end(); ) { CDevice* pDev = new CDevice(); // 获取设备ID pDev->m_iID = atoi((*it_dev_id++).c_str()); // 获取设备UID pDev->m_strUid = (*it_uid++).c_str(); // 获取设备端口号 pDev->m_iPort = atoi((*it_port++).c_str()); // 获取设备名称 pDev->m_strDeviceName = (*it_device_name++).c_str(); // 获取设备的波特率 pDev->m_iBaudrate = atoi((*it_device_baudrate++).c_str()); // 获取设备的数据位 pDev->m_iDatabit = atoi((*it_data_bit++).c_str()); // 获取设备的停止位 pDev->m_iStopbit = atoi((*it_stop_bit++).c_str()); // 获取设备的校验位 pDev->m_iParitybit = atoi((*it_parity_bit++).c_str()); // 通信的方式 pDev->m_iCommmode = atoi((*it_commmode++).c_str()); // 设备地址 pDev->m_iDevideaddr = atoi((*it_devide_addr++).c_str()); // 设备是否启用 CString strIsUse = (*it_is_use++).c_str(); if( 0 == atoi(strIsUse) ) { pDev->m_iIsuse = 0; } else { pDev->m_iIsuse = 1; } // 协议DLL名称 pDev->m_strProtocoldllname = (*it_protocol_dll_name++).c_str(); // Modbus Rtu;Modbus Ascii;Modbus Tcp;Snmp;RS232; CString strSpecialDevice = (*it_special_device++).c_str(); pDev->m_bySpecialdevice = atoi(strSpecialDevice); //LOG4C((LOG_NOTICE, "device name = %s, specialdevice = %d, %s", pDev->m_strDeviceName, pDev->m_bySpecialdevice, strSpecialDevice)); // 设备IP pDev->m_strIp = (*it_ip++).c_str(); // 网络通信端口 pDev->m_iIpport = atoi((*it_ip_port++).c_str()); // ini配置文件名称 pDev->m_strIniName = (*it_ini_name++).c_str(); // 字符串预留1 pDev->m_strReserved1 = (*it_str_reserved1++).c_str(); // 字符串预留2 pDev->m_strReserved2 = (*it_str_reserved2++).c_str(); // 字符串预留3 pDev->m_strReserved3 = (*it_str_reserved3++).c_str(); // 字符串预留4 pDev->m_strReserved4 = (*it_str_reserved4++).c_str(); // 字符串预留5 pDev->m_strReserved5 = (*it_str_reserved5++).c_str(); // 字符串预留6 pDev->m_strReserved6 = (*it_str_reserved6++).c_str(); // 字符串预留7 pDev->m_strReserved7 = (*it_str_reserved7++).c_str(); // 字符串预留8 pDev->m_strReserved8 = (*it_str_reserved8++).c_str(); // 字符串预留9 pDev->m_strReserved9 = (*it_str_reserved9++).c_str(); // 字符串预留10 pDev->m_strReserved10 = (*it_str_reserved10++).c_str(); // 整形预留1 pDev->m_nReserved1 = atoi((*it_int_reserved1++).c_str()); // 整形预留2 pDev->m_nReserved2 = atoi((*it_int_reserved2++).c_str()); // 整形预留3 pDev->m_nReserved3 = atoi((*it_int_reserved3++).c_str()); // 整形预留4 pDev->m_nReserved4 = atoi((*it_int_reserved4++).c_str()); // 整形预留5 pDev->m_nReserved5 = atoi((*it_int_reserved5++).c_str()); // 整形预留6 pDev->m_nReserved6 = atoi((*it_int_reserved6++).c_str()); // 整形预留7 pDev->m_nReserved7 = atoi((*it_int_reserved7++).c_str()); // 整形预留8 pDev->m_nReserved8 = atoi((*it_int_reserved8++).c_str()); // 整形预留9 pDev->m_nReserved9 = atoi((*it_int_reserved9++).c_str()); // 整形预留10 pDev->m_nReserved10 = atoi((*it_int_reserved10++).c_str()); CString strBoolReserved1 = (*it_bool_reserved1++).c_str(); //LOG4C((LOG_NOTICE, "strBoolReserved1=%s", strBoolReserved1)); //布尔型预留1 if( 0 == atoi(strBoolReserved1) ) { pDev->m_bReserved1 = false; } else { pDev->m_bReserved1 = true; } //布尔型预留2 if( 0 == atoi((*it_bool_reserved2++).c_str()) ) { pDev->m_bReserved2 = false; } else { pDev->m_bReserved2 = true; } //布尔型预留3 if( 0 == atoi((*it_bool_reserved3++).c_str()) ) { pDev->m_bReserved3 = false; } else { pDev->m_bReserved3 = true; } //布尔型预留4 if( 0 == atoi((*it_bool_reserved4++).c_str()) ) { pDev->m_bReserved4 = false; } else { pDev->m_bReserved4 = true; } //布尔型预留5 if( 0 == atoi((*it_bool_reserved5++).c_str()) ) { pDev->m_bReserved5 = false; } else { pDev->m_bReserved5 = true; } //布尔型预留6 if( 0 == atoi((*it_bool_reserved6++).c_str()) ) { pDev->m_bReserved6 = false; } else { pDev->m_bReserved6 = true; } //布尔型预留7 if( 0 == atoi((*it_bool_reserved7++).c_str()) ) { pDev->m_bReserved7 = false; } else { pDev->m_bReserved7 = true; } //布尔型预留8 if( 0 == atoi((*it_bool_reserved8++).c_str()) ) { pDev->m_bReserved8 = false; } else { pDev->m_bReserved8 = true; } //布尔型预留9 if( 0 == atoi((*it_bool_reserved9++).c_str()) ) { pDev->m_bReserved9 = false; } else { pDev->m_bReserved9 = true; } //布尔型预留10 if( 0 == atoi((*it_bool_reserved10++).c_str()) ) { pDev->m_bReserved10 = false; } else { pDev->m_bReserved10 = true; } if( g_pDevicesManager ) { GetVarInfo((void *)pDev, (char *)(LPCTSTR)pDev->m_strUid ); int nVarSize = (int)pDev->m_Vars.GetSize(); for( int j = 0; j < nVarSize; j++ ) { CBaseVar *pBaseVar = pDev->m_Vars[j]; } //LOG4C((LOG_NOTICE, "add device desc %s", pDev->m_strDeviceName)); g_pDevicesManager->m_Devices.Add(pDev); } } } for( it_dev_id = list_dev_id.begin(), it_uid = list_uid.begin(), it_port = list_port.begin() ,it_device_name = list_device_name.begin(), it_device_baudrate = list_device_baudrate.begin() ,it_commmode = list_commmode.begin(), it_devide_addr = list_devide_addr.begin() ,it_is_use = list_is_use.begin(),it_protocol_dll_name = list_protocol_dll_name.begin() ,it_special_device = list_special_device.begin(), it_data_bit = list_data_bit.begin() ,it_stop_bit = list_stop_bit.begin(), it_parity_bit = list_parity_bit.begin(), it_ip = list_ip.begin() ,it_ip_port = list_ip_port.begin(), it_ini_name = list_ini_name.begin() ,it_str_reserved1 = list_str_reserved1.begin(), it_str_reserved2 = list_str_reserved2.begin() ,it_str_reserved3 = list_str_reserved3.begin(), it_str_reserved4 = list_str_reserved4.begin() ,it_str_reserved5 = list_str_reserved5.begin(), it_str_reserved6 = list_str_reserved6.begin() ,it_str_reserved7 = list_str_reserved7.begin(), it_str_reserved8 = list_str_reserved8.begin() ,it_str_reserved9 = list_str_reserved9.begin(), it_str_reserved10 = list_str_reserved10.begin() ,it_int_reserved1 = list_int_reserved1.begin(), it_int_reserved2 = list_int_reserved2.begin() ,it_int_reserved3 = list_int_reserved3.begin(), it_int_reserved4 = list_int_reserved4.begin() ,it_int_reserved5 = list_int_reserved5.begin(), it_int_reserved6 = list_int_reserved6.begin() ,it_int_reserved7 = list_int_reserved7.begin(), it_int_reserved8 = list_int_reserved8.begin() ,it_int_reserved9 = list_int_reserved9.begin(), it_int_reserved10 = list_int_reserved10.begin() ,it_bool_reserved1 = list_bool_reserved1.begin(), it_bool_reserved2 = list_bool_reserved2.begin() ,it_bool_reserved3 = list_bool_reserved3.begin(), it_bool_reserved4 = list_bool_reserved4.begin() ,it_bool_reserved5 = list_bool_reserved5.begin(), it_bool_reserved6 = list_bool_reserved6.begin() ,it_bool_reserved7 = list_bool_reserved7.begin(), it_bool_reserved8 = list_bool_reserved8.begin() ,it_bool_reserved9 = list_bool_reserved9.begin(), it_bool_reserved10 = list_bool_reserved10.begin(); it_dev_id != list_dev_id.end(), it_uid != list_uid.end(), it_port != list_port.end() ,it_device_name != list_device_name.end(), it_device_baudrate != list_device_baudrate.end() ,it_commmode != list_commmode.end(), it_devide_addr != list_devide_addr.end() ,it_is_use != list_is_use.end(),it_protocol_dll_name != list_protocol_dll_name.end() ,it_special_device != list_special_device.end(), it_data_bit != list_data_bit.end() ,it_stop_bit != list_stop_bit.end(), it_parity_bit != list_parity_bit.end(), it_ip != list_ip.end() ,it_ip_port != list_ip_port.end(), it_ini_name != list_ini_name.end() ,it_str_reserved1 != list_str_reserved1.end(), it_str_reserved2 != list_str_reserved2.end() ,it_str_reserved3 != list_str_reserved3.end(), it_str_reserved4 != list_str_reserved4.end() ,it_str_reserved5 != list_str_reserved5.end(), it_str_reserved6 != list_str_reserved6.end() ,it_str_reserved7 != list_str_reserved7.end(), it_str_reserved8 != list_str_reserved8.end() ,it_str_reserved9 != list_str_reserved9.end(), it_str_reserved10 != list_str_reserved10.end() ,it_int_reserved1 != list_int_reserved1.end(), it_int_reserved2 != list_int_reserved2.end() ,it_int_reserved3 != list_int_reserved3.end(), it_int_reserved4 != list_int_reserved4.end() ,it_int_reserved5 != list_int_reserved5.end(), it_int_reserved6 != list_int_reserved6.end() ,it_int_reserved7 != list_int_reserved7.end(), it_int_reserved8 != list_int_reserved8.end() ,it_int_reserved9 != list_int_reserved9.end(), it_int_reserved10 != list_int_reserved10.end() ,it_bool_reserved1 != list_bool_reserved1.end(), it_bool_reserved2 != list_bool_reserved2.end() ,it_bool_reserved3 != list_bool_reserved3.end(), it_bool_reserved4 != list_bool_reserved4.end() ,it_bool_reserved5 != list_bool_reserved5.end(), it_bool_reserved6 != list_bool_reserved6.end() ,it_bool_reserved7 != list_bool_reserved7.end(), it_bool_reserved8 != list_bool_reserved8.end() ,it_bool_reserved9 != list_bool_reserved9.end(), it_bool_reserved10 != list_bool_reserved10.end(); ) { list_dev_id.erase(it_dev_id++); list_uid.erase(it_uid++); list_port.erase(it_port++); list_device_name.erase(it_device_name++); list_device_baudrate.erase(it_device_baudrate++); list_commmode.erase(it_commmode++); list_devide_addr.erase(it_devide_addr++); list_is_use.erase(it_is_use++); list_protocol_dll_name.erase(it_protocol_dll_name++); list_special_device.erase(it_special_device++); list_data_bit.erase(it_data_bit++); list_stop_bit.erase(it_stop_bit++); list_parity_bit.erase(it_parity_bit++); list_ip.erase(it_ip++); list_ip_port.erase(it_ip_port++); list_ini_name.erase(it_ini_name++); list_str_reserved1.erase(it_str_reserved1++); list_str_reserved2.erase(it_str_reserved2++); list_str_reserved3.erase(it_str_reserved3++); list_str_reserved4.erase(it_str_reserved4++); list_str_reserved5.erase(it_str_reserved5++); list_str_reserved6.erase(it_str_reserved6++); list_str_reserved7.erase(it_str_reserved7++); list_str_reserved8.erase(it_str_reserved8++); list_str_reserved9.erase(it_str_reserved9++); list_str_reserved10.erase(it_str_reserved10++); list_int_reserved1.erase(it_int_reserved1++); list_int_reserved2.erase(it_int_reserved2++); list_int_reserved3.erase(it_int_reserved3++); list_int_reserved4.erase(it_int_reserved4++); list_int_reserved5.erase(it_int_reserved5++); list_int_reserved6.erase(it_int_reserved6++); list_int_reserved7.erase(it_int_reserved7++); list_int_reserved8.erase(it_int_reserved8++); list_int_reserved9.erase(it_int_reserved9++); list_int_reserved10.erase(it_int_reserved10++); list_bool_reserved1.erase(it_bool_reserved1++); list_bool_reserved2.erase(it_bool_reserved2++); list_bool_reserved3.erase(it_bool_reserved3++); list_bool_reserved4.erase(it_bool_reserved4++); list_bool_reserved5.erase(it_bool_reserved5++); list_bool_reserved6.erase(it_bool_reserved6++); list_bool_reserved7.erase(it_bool_reserved7++); list_bool_reserved8.erase(it_bool_reserved8++); list_bool_reserved9.erase(it_bool_reserved9++); list_bool_reserved10.erase(it_bool_reserved10++); } return nRet; } // 修改设备资料 INT CDBInterface::EditDevInfo() { CHAR strSQLText[MAX_SQL_LENGTH + 1] = {0}; list list_dev_id, list_uid, list_port, list_device_name, list_device_baudrate; list list_commmode, list_devide_addr, list_is_use, list_protocol_dll_name; list list_special_device, list_data_bit, list_stop_bit, list_parity_bit, list_ip, list_ip_port, list_ini_name; list list_str_reserved1, list_str_reserved2, list_str_reserved3, list_str_reserved4, list_str_reserved5; list list_str_reserved6, list_str_reserved7, list_str_reserved8, list_str_reserved9, list_str_reserved10; list list_int_reserved1, list_int_reserved2, list_int_reserved3, list_int_reserved4, list_int_reserved5; list list_int_reserved6, list_int_reserved7, list_int_reserved8, list_int_reserved9, list_int_reserved10; list list_bool_reserved1, list_bool_reserved2, list_bool_reserved3, list_bool_reserved4, list_bool_reserved5; list list_bool_reserved6, list_bool_reserved7, list_bool_reserved8, list_bool_reserved9, list_bool_reserved10; list::iterator it_dev_id, it_uid, it_port, it_device_name, it_device_baudrate; list::iterator it_commmode, it_devide_addr, it_is_use, it_protocol_dll_name; list::iterator it_special_device, it_data_bit, it_stop_bit, it_parity_bit, it_ip, it_ip_port, it_ini_name; list::iterator it_str_reserved1, it_str_reserved2, it_str_reserved3, it_str_reserved4, it_str_reserved5; list::iterator it_str_reserved6, it_str_reserved7, it_str_reserved8, it_str_reserved9, it_str_reserved10; list::iterator it_int_reserved1, it_int_reserved2, it_int_reserved3, it_int_reserved4, it_int_reserved5; list::iterator it_int_reserved6, it_int_reserved7, it_int_reserved8, it_int_reserved9, it_int_reserved10; list::iterator it_bool_reserved1, it_bool_reserved2, it_bool_reserved3, it_bool_reserved4, it_bool_reserved5; list::iterator it_bool_reserved6, it_bool_reserved7, it_bool_reserved8, it_bool_reserved9, it_bool_reserved10; sprintf(strSQLText, "select id as devId, uid, port, devicename, baudrate, commmode, devideaddr, isuse, protocoldllname, " \ " specialdevice, databit, stopbit, paritybit, ip, ipport, ininame, " \ " strreserved1, strreserved2, strreserved3, strreserved4, strreserved5, " \ " strreserved6, strreserved7, strreserved8, strreserved9, strreserved10, " \ " intreserved1, intreserved2, intreserved3, intreserved4, intreserved5, " \ " intreserved6, intreserved7, intreserved8, intreserved9, intreserved10, " \ " boolreserved1, boolreserved2, boolreserved3, boolreserved4, boolreserved5, " \ " boolreserved6, boolreserved7, boolreserved8, boolreserved9, boolreserved10 " \ " from t_dev_property where isuse = '1'"); int nRet = CDBConnection::GetInstancePtr()->GetFieldValueList46(strSQLText ,list_dev_id, list_uid, list_port, list_device_name, list_device_baudrate ,list_commmode, list_devide_addr, list_is_use, list_protocol_dll_name ,list_special_device, list_data_bit, list_stop_bit, list_parity_bit, list_ip, list_ip_port, list_ini_name ,list_str_reserved1, list_str_reserved2, list_str_reserved3, list_str_reserved4, list_str_reserved5 ,list_str_reserved6, list_str_reserved7, list_str_reserved8, list_str_reserved9, list_str_reserved10 ,list_int_reserved1, list_int_reserved2, list_int_reserved3, list_int_reserved4, list_int_reserved5 ,list_int_reserved6, list_int_reserved7, list_int_reserved8, list_int_reserved9, list_int_reserved10 ,list_bool_reserved1, list_bool_reserved2, list_bool_reserved3, list_bool_reserved4, list_bool_reserved5 ,list_bool_reserved6, list_bool_reserved7, list_bool_reserved8, list_bool_reserved9, list_bool_reserved10); if( 0 == list_dev_id.size() || 0 == list_uid.size() || 0 == list_port.size() || 0 == list_device_name.size() || 0 == list_device_baudrate.size() || 0 == list_commmode.size() || 0 == list_devide_addr.size() || 0 == list_is_use.size() || 0 == list_protocol_dll_name.size() || 0 == list_special_device.size() || 0 == list_data_bit.size() || 0 == list_stop_bit.size() || 0 == list_parity_bit.size() || 0 == list_ip.size() || 0 == list_ip_port.size() || 0 == list_ini_name.size() || 0 == list_str_reserved1.size() || 0 == list_str_reserved2.size() || 0 == list_str_reserved3.size() || 0 == list_str_reserved4.size() || 0 == list_str_reserved5.size() || 0 == list_str_reserved6.size() || 0 == list_str_reserved7.size() || 0 == list_str_reserved8.size() || 0 == list_str_reserved9.size() || 0 == list_str_reserved10.size() || 0 == list_int_reserved1.size() || 0 == list_int_reserved2.size() || 0 == list_int_reserved3.size() || 0 == list_int_reserved4.size() || 0 == list_int_reserved5.size() || 0 == list_int_reserved6.size() || 0 == list_int_reserved7.size() || 0 == list_int_reserved8.size() || 0 == list_int_reserved9.size() || 0 == list_int_reserved10.size() || 0 == list_bool_reserved1.size() || 0 == list_bool_reserved2.size() || 0 == list_bool_reserved3.size() || 0 == list_bool_reserved4.size() || 0 == list_bool_reserved5.size() || 0 == list_bool_reserved6.size() || 0 == list_bool_reserved7.size() || 0 == list_bool_reserved8.size() || 0 == list_bool_reserved9.size() || 0 == list_bool_reserved10.size() ) { LOG4C((LOG_NOTICE, "GetDevInfo GetFieldValueList46 list size = 0")); return 0; } int nDeviceIndex = 0; if( nRet != -1 ) { for( it_dev_id = list_dev_id.begin(), it_uid = list_uid.begin(), it_port = list_port.begin() ,it_device_name = list_device_name.begin(), it_device_baudrate = list_device_baudrate.begin() ,it_commmode = list_commmode.begin(), it_devide_addr = list_devide_addr.begin() ,it_is_use = list_is_use.begin(),it_protocol_dll_name = list_protocol_dll_name.begin() ,it_special_device = list_special_device.begin(), it_data_bit = list_data_bit.begin() ,it_stop_bit = list_stop_bit.begin(), it_parity_bit = list_parity_bit.begin(), it_ip = list_ip.begin() ,it_ip_port = list_ip_port.begin(), it_ini_name = list_ini_name.begin() ,it_str_reserved1 = list_str_reserved1.begin(), it_str_reserved2 = list_str_reserved2.begin() ,it_str_reserved3 = list_str_reserved3.begin(), it_str_reserved4 = list_str_reserved4.begin() ,it_str_reserved5 = list_str_reserved5.begin(), it_str_reserved6 = list_str_reserved6.begin() ,it_str_reserved7 = list_str_reserved7.begin(), it_str_reserved8 = list_str_reserved8.begin() ,it_str_reserved9 = list_str_reserved9.begin(), it_str_reserved10 = list_str_reserved10.begin() ,it_int_reserved1 = list_int_reserved1.begin(), it_int_reserved2 = list_int_reserved2.begin() ,it_int_reserved3 = list_int_reserved3.begin(), it_int_reserved4 = list_int_reserved4.begin() ,it_int_reserved5 = list_int_reserved5.begin(), it_int_reserved6 = list_int_reserved6.begin() ,it_int_reserved7 = list_int_reserved7.begin(), it_int_reserved8 = list_int_reserved8.begin() ,it_int_reserved9 = list_int_reserved9.begin(), it_int_reserved10 = list_int_reserved10.begin() ,it_bool_reserved1 = list_bool_reserved1.begin(), it_bool_reserved2 = list_bool_reserved2.begin() ,it_bool_reserved3 = list_bool_reserved3.begin(), it_bool_reserved4 = list_bool_reserved4.begin() ,it_bool_reserved5 = list_bool_reserved5.begin(), it_bool_reserved6 = list_bool_reserved6.begin() ,it_bool_reserved7 = list_bool_reserved7.begin(), it_bool_reserved8 = list_bool_reserved8.begin() ,it_bool_reserved9 = list_bool_reserved9.begin(), it_bool_reserved10 = list_bool_reserved10.begin(); it_dev_id != list_dev_id.end(), it_uid != list_uid.end(), it_port != list_port.end() ,it_device_name != list_device_name.end(), it_device_baudrate != list_device_baudrate.end() ,it_commmode != list_commmode.end(), it_devide_addr != list_devide_addr.end() ,it_is_use != list_is_use.end(),it_protocol_dll_name != list_protocol_dll_name.end() ,it_special_device != list_special_device.end(), it_data_bit != list_data_bit.end() ,it_stop_bit != list_stop_bit.end(), it_parity_bit != list_parity_bit.end(), it_ip != list_ip.end() ,it_ip_port != list_ip_port.end(), it_ini_name != list_ini_name.end() ,it_str_reserved1 != list_str_reserved1.end(), it_str_reserved2 != list_str_reserved2.end() ,it_str_reserved3 != list_str_reserved3.end(), it_str_reserved4 != list_str_reserved4.end() ,it_str_reserved5 != list_str_reserved5.end(), it_str_reserved6 != list_str_reserved6.end() ,it_str_reserved7 != list_str_reserved7.end(), it_str_reserved8 != list_str_reserved8.end() ,it_str_reserved9 != list_str_reserved9.end(), it_str_reserved10 != list_str_reserved10.end() ,it_int_reserved1 != list_int_reserved1.end(), it_int_reserved2 != list_int_reserved2.end() ,it_int_reserved3 != list_int_reserved3.end(), it_int_reserved4 != list_int_reserved4.end() ,it_int_reserved5 != list_int_reserved5.end(), it_int_reserved6 != list_int_reserved6.end() ,it_int_reserved7 != list_int_reserved7.end(), it_int_reserved8 != list_int_reserved8.end() ,it_int_reserved9 != list_int_reserved9.end(), it_int_reserved10 != list_int_reserved10.end() ,it_bool_reserved1 != list_bool_reserved1.end(), it_bool_reserved2 != list_bool_reserved2.end() ,it_bool_reserved3 != list_bool_reserved3.end(), it_bool_reserved4 != list_bool_reserved4.end() ,it_bool_reserved5 != list_bool_reserved5.end(), it_bool_reserved6 != list_bool_reserved6.end() ,it_bool_reserved7 != list_bool_reserved7.end(), it_bool_reserved8 != list_bool_reserved8.end() ,it_bool_reserved9 != list_bool_reserved9.end(), it_bool_reserved10 != list_bool_reserved10.end(); ) { CDevice* pDev = g_pDevicesManager->m_Devices[nDeviceIndex]; // 获取设备ID pDev->m_iID = atoi((*it_dev_id++).c_str()); // 获取设备UID pDev->m_strUid = (*it_uid++).c_str(); // 获取设备端口号 pDev->m_iPort = atoi((*it_port++).c_str()); // 获取设备名称 pDev->m_strDeviceName = (*it_device_name++).c_str(); // 获取设备的波特率 pDev->m_iBaudrate = atoi((*it_device_baudrate++).c_str()); // 获取设备的数据位 pDev->m_iDatabit = atoi((*it_data_bit++).c_str()); // 获取设备的停止位 pDev->m_iStopbit = atoi((*it_stop_bit++).c_str()); // 获取设备的校验位 pDev->m_iParitybit = atoi((*it_parity_bit++).c_str()); // 通信的方式 pDev->m_iCommmode = atoi((*it_commmode++).c_str()); // 设备地址 pDev->m_iDevideaddr = atoi((*it_devide_addr++).c_str()); // 设备是否启用 CString strIsUse = (*it_is_use++).c_str(); if( 0 == atoi(strIsUse) ) { pDev->m_iIsuse = FALSE; } else { pDev->m_iIsuse = TRUE; } // 协议DLL名称 pDev->m_strProtocoldllname = (*it_protocol_dll_name++).c_str(); // Modbus Rtu;Modbus Ascii;Modbus Tcp;Snmp;RS232; CString strSpecialDevice = (*it_special_device++).c_str(); pDev->m_bySpecialdevice = atoi(strSpecialDevice); //LOG4C((LOG_NOTICE, "device name = %s, specialdevice = %d, %s", pDev->m_strDeviceName, pDev->m_bySpecialdevice, strSpecialDevice)); // 设备IP pDev->m_strIp = (*it_ip++).c_str(); // 网络通信端口 pDev->m_iIpport = atoi((*it_ip_port++).c_str()); // ini配置文件名称 pDev->m_strIniName = (*it_ini_name++).c_str(); // 字符串预留1 pDev->m_strReserved1 = (*it_str_reserved1++).c_str(); // 字符串预留2 pDev->m_strReserved2 = (*it_str_reserved2++).c_str(); // 字符串预留3 pDev->m_strReserved3 = (*it_str_reserved3++).c_str(); // 字符串预留4 pDev->m_strReserved4 = (*it_str_reserved4++).c_str(); // 字符串预留5 pDev->m_strReserved5 = (*it_str_reserved5++).c_str(); // 字符串预留6 pDev->m_strReserved6 = (*it_str_reserved6++).c_str(); // 字符串预留7 pDev->m_strReserved7 = (*it_str_reserved7++).c_str(); // 字符串预留8 pDev->m_strReserved8 = (*it_str_reserved8++).c_str(); // 字符串预留9 pDev->m_strReserved9 = (*it_str_reserved9++).c_str(); // 字符串预留10 pDev->m_strReserved10 = (*it_str_reserved10++).c_str(); // 整形预留1 pDev->m_nReserved1 = atoi((*it_int_reserved1++).c_str()); // 整形预留2 pDev->m_nReserved2 = atoi((*it_int_reserved2++).c_str()); // 整形预留3 pDev->m_nReserved3 = atoi((*it_int_reserved3++).c_str()); // 整形预留4 pDev->m_nReserved4 = atoi((*it_int_reserved4++).c_str()); // 整形预留5 pDev->m_nReserved5 = atoi((*it_int_reserved5++).c_str()); // 整形预留6 pDev->m_nReserved6 = atoi((*it_int_reserved6++).c_str()); // 整形预留7 pDev->m_nReserved7 = atoi((*it_int_reserved7++).c_str()); // 整形预留8 pDev->m_nReserved8 = atoi((*it_int_reserved8++).c_str()); // 整形预留9 pDev->m_nReserved9 = atoi((*it_int_reserved9++).c_str()); // 整形预留10 pDev->m_nReserved10 = atoi((*it_int_reserved10++).c_str()); //布尔型预留1 if( 0 == atoi((*it_bool_reserved1++).c_str()) ) { pDev->m_bReserved1 = false; } else { pDev->m_bReserved1 = true; } //布尔型预留2 if( 0 == atoi((*it_bool_reserved2++).c_str()) ) { pDev->m_bReserved2 = false; } else { pDev->m_bReserved2 = true; } //布尔型预留3 if( 0 == atoi((*it_bool_reserved3++).c_str()) ) { pDev->m_bReserved3 = false; } else { pDev->m_bReserved3 = true; } //布尔型预留4 if( 0 == atoi((*it_bool_reserved4++).c_str()) ) { pDev->m_bReserved4 = false; } else { pDev->m_bReserved4 = true; } //布尔型预留5 if( 0 == atoi((*it_bool_reserved5++).c_str()) ) { pDev->m_bReserved5 = false; } else { pDev->m_bReserved5 = true; } //布尔型预留6 if( 0 == atoi((*it_bool_reserved6++).c_str()) ) { pDev->m_bReserved6 = false; } else { pDev->m_bReserved6 = true; } //布尔型预留7 if( 0 == atoi((*it_bool_reserved7++).c_str()) ) { pDev->m_bReserved7 = false; } else { pDev->m_bReserved7 = true; } //布尔型预留8 if( 0 == atoi((*it_bool_reserved8++).c_str()) ) { pDev->m_bReserved8 = false; } else { pDev->m_bReserved8 = true; } //布尔型预留9 if( 0 == atoi((*it_bool_reserved9++).c_str()) ) { pDev->m_bReserved9 = false; } else { pDev->m_bReserved9 = true; } //布尔型预留10 if( 0 == atoi((*it_bool_reserved10++).c_str()) ) { pDev->m_bReserved10 = false; } else { pDev->m_bReserved10 = true; } nDeviceIndex++; } } for( it_dev_id = list_dev_id.begin(), it_uid = list_uid.begin(), it_port = list_port.begin() ,it_device_name = list_device_name.begin(), it_device_baudrate = list_device_baudrate.begin() ,it_commmode = list_commmode.begin(), it_devide_addr = list_devide_addr.begin() ,it_is_use = list_is_use.begin(),it_protocol_dll_name = list_protocol_dll_name.begin() ,it_special_device = list_special_device.begin(), it_data_bit = list_data_bit.begin() ,it_stop_bit = list_stop_bit.begin(), it_parity_bit = list_parity_bit.begin(), it_ip = list_ip.begin() ,it_ip_port = list_ip_port.begin(), it_ini_name = list_ini_name.begin() ,it_str_reserved1 = list_str_reserved1.begin(), it_str_reserved2 = list_str_reserved2.begin() ,it_str_reserved3 = list_str_reserved3.begin(), it_str_reserved4 = list_str_reserved4.begin() ,it_str_reserved5 = list_str_reserved5.begin(), it_str_reserved6 = list_str_reserved6.begin() ,it_str_reserved7 = list_str_reserved7.begin(), it_str_reserved8 = list_str_reserved8.begin() ,it_str_reserved9 = list_str_reserved9.begin(), it_str_reserved10 = list_str_reserved10.begin() ,it_int_reserved1 = list_int_reserved1.begin(), it_int_reserved2 = list_int_reserved2.begin() ,it_int_reserved3 = list_int_reserved3.begin(), it_int_reserved4 = list_int_reserved4.begin() ,it_int_reserved5 = list_int_reserved5.begin(), it_int_reserved6 = list_int_reserved6.begin() ,it_int_reserved7 = list_int_reserved7.begin(), it_int_reserved8 = list_int_reserved8.begin() ,it_int_reserved9 = list_int_reserved9.begin(), it_int_reserved10 = list_int_reserved10.begin() ,it_bool_reserved1 = list_bool_reserved1.begin(), it_bool_reserved2 = list_bool_reserved2.begin() ,it_bool_reserved3 = list_bool_reserved3.begin(), it_bool_reserved4 = list_bool_reserved4.begin() ,it_bool_reserved5 = list_bool_reserved5.begin(), it_bool_reserved6 = list_bool_reserved6.begin() ,it_bool_reserved7 = list_bool_reserved7.begin(), it_bool_reserved8 = list_bool_reserved8.begin() ,it_bool_reserved9 = list_bool_reserved9.begin(), it_bool_reserved10 = list_bool_reserved10.begin(); it_dev_id != list_dev_id.end(), it_uid != list_uid.end(), it_port != list_port.end() ,it_device_name != list_device_name.end(), it_device_baudrate != list_device_baudrate.end() ,it_commmode != list_commmode.end(), it_devide_addr != list_devide_addr.end() ,it_is_use != list_is_use.end(),it_protocol_dll_name != list_protocol_dll_name.end() ,it_special_device != list_special_device.end(), it_data_bit != list_data_bit.end() ,it_stop_bit != list_stop_bit.end(), it_parity_bit != list_parity_bit.end(), it_ip != list_ip.end() ,it_ip_port != list_ip_port.end(), it_ini_name != list_ini_name.end() ,it_str_reserved1 != list_str_reserved1.end(), it_str_reserved2 != list_str_reserved2.end() ,it_str_reserved3 != list_str_reserved3.end(), it_str_reserved4 != list_str_reserved4.end() ,it_str_reserved5 != list_str_reserved5.end(), it_str_reserved6 != list_str_reserved6.end() ,it_str_reserved7 != list_str_reserved7.end(), it_str_reserved8 != list_str_reserved8.end() ,it_str_reserved9 != list_str_reserved9.end(), it_str_reserved10 != list_str_reserved10.end() ,it_int_reserved1 != list_int_reserved1.end(), it_int_reserved2 != list_int_reserved2.end() ,it_int_reserved3 != list_int_reserved3.end(), it_int_reserved4 != list_int_reserved4.end() ,it_int_reserved5 != list_int_reserved5.end(), it_int_reserved6 != list_int_reserved6.end() ,it_int_reserved7 != list_int_reserved7.end(), it_int_reserved8 != list_int_reserved8.end() ,it_int_reserved9 != list_int_reserved9.end(), it_int_reserved10 != list_int_reserved10.end() ,it_bool_reserved1 != list_bool_reserved1.end(), it_bool_reserved2 != list_bool_reserved2.end() ,it_bool_reserved3 != list_bool_reserved3.end(), it_bool_reserved4 != list_bool_reserved4.end() ,it_bool_reserved5 != list_bool_reserved5.end(), it_bool_reserved6 != list_bool_reserved6.end() ,it_bool_reserved7 != list_bool_reserved7.end(), it_bool_reserved8 != list_bool_reserved8.end() ,it_bool_reserved9 != list_bool_reserved9.end(), it_bool_reserved10 != list_bool_reserved10.end(); ) { list_dev_id.erase(it_dev_id++); list_uid.erase(it_uid++); list_port.erase(it_port++); list_device_name.erase(it_device_name++); list_device_baudrate.erase(it_device_baudrate++); list_commmode.erase(it_commmode++); list_devide_addr.erase(it_devide_addr++); list_is_use.erase(it_is_use++); list_protocol_dll_name.erase(it_protocol_dll_name++); list_special_device.erase(it_special_device++); list_data_bit.erase(it_data_bit++); list_stop_bit.erase(it_stop_bit++); list_parity_bit.erase(it_parity_bit++); list_ip.erase(it_ip++); list_ip_port.erase(it_ip_port++); list_ini_name.erase(it_ini_name++); list_str_reserved1.erase(it_str_reserved1++); list_str_reserved2.erase(it_str_reserved2++); list_str_reserved3.erase(it_str_reserved3++); list_str_reserved4.erase(it_str_reserved4++); list_str_reserved5.erase(it_str_reserved5++); list_str_reserved6.erase(it_str_reserved6++); list_str_reserved7.erase(it_str_reserved7++); list_str_reserved8.erase(it_str_reserved8++); list_str_reserved9.erase(it_str_reserved9++); list_str_reserved10.erase(it_str_reserved10++); list_int_reserved1.erase(it_int_reserved1++); list_int_reserved2.erase(it_int_reserved2++); list_int_reserved3.erase(it_int_reserved3++); list_int_reserved4.erase(it_int_reserved4++); list_int_reserved5.erase(it_int_reserved5++); list_int_reserved6.erase(it_int_reserved6++); list_int_reserved7.erase(it_int_reserved7++); list_int_reserved8.erase(it_int_reserved8++); list_int_reserved9.erase(it_int_reserved9++); list_int_reserved10.erase(it_int_reserved10++); list_bool_reserved1.erase(it_bool_reserved1++); list_bool_reserved2.erase(it_bool_reserved2++); list_bool_reserved3.erase(it_bool_reserved3++); list_bool_reserved4.erase(it_bool_reserved4++); list_bool_reserved5.erase(it_bool_reserved5++); list_bool_reserved6.erase(it_bool_reserved6++); list_bool_reserved7.erase(it_bool_reserved7++); list_bool_reserved8.erase(it_bool_reserved8++); list_bool_reserved9.erase(it_bool_reserved9++); list_bool_reserved10.erase(it_bool_reserved10++); } return nRet; } // 修改设备资料 INT CDBInterface::EditDevInfo(int nDevideIndex, char *pDevUid) { CDevice *pDev = g_pDevicesManager->m_Devices[nDevideIndex]; CHAR strSQLText[MAX_SQL_LENGTH + 1] = {0}; list list_dev_id, list_uid, list_port, list_device_name, list_device_baudrate; list list_commmode, list_devide_addr, list_is_use, list_protocol_dll_name; list list_special_device, list_data_bit, list_stop_bit, list_parity_bit, list_ip, list_ip_port, list_ini_name; list list_str_reserved1, list_str_reserved2, list_str_reserved3, list_str_reserved4, list_str_reserved5; list list_str_reserved6, list_str_reserved7, list_str_reserved8, list_str_reserved9, list_str_reserved10; list list_int_reserved1, list_int_reserved2, list_int_reserved3, list_int_reserved4, list_int_reserved5; list list_int_reserved6, list_int_reserved7, list_int_reserved8, list_int_reserved9, list_int_reserved10; list list_bool_reserved1, list_bool_reserved2, list_bool_reserved3, list_bool_reserved4, list_bool_reserved5; list list_bool_reserved6, list_bool_reserved7, list_bool_reserved8, list_bool_reserved9, list_bool_reserved10; list::iterator it_dev_id, it_uid, it_port, it_device_name, it_device_baudrate; list::iterator it_commmode, it_devide_addr, it_is_use, it_protocol_dll_name; list::iterator it_special_device, it_data_bit, it_stop_bit, it_parity_bit, it_ip, it_ip_port, it_ini_name; list::iterator it_str_reserved1, it_str_reserved2, it_str_reserved3, it_str_reserved4, it_str_reserved5; list::iterator it_str_reserved6, it_str_reserved7, it_str_reserved8, it_str_reserved9, it_str_reserved10; list::iterator it_int_reserved1, it_int_reserved2, it_int_reserved3, it_int_reserved4, it_int_reserved5; list::iterator it_int_reserved6, it_int_reserved7, it_int_reserved8, it_int_reserved9, it_int_reserved10; list::iterator it_bool_reserved1, it_bool_reserved2, it_bool_reserved3, it_bool_reserved4, it_bool_reserved5; list::iterator it_bool_reserved6, it_bool_reserved7, it_bool_reserved8, it_bool_reserved9, it_bool_reserved10; sprintf(strSQLText, "select id as devId, uid, port, devicename, baudrate, commmode, devideaddr, isuse, protocoldllname, " \ " specialdevice, databit, stopbit, paritybit, ip, ipport, ininame, " \ " strreserved1, strreserved2, strreserved3, strreserved4, strreserved5, " \ " strreserved6, strreserved7, strreserved8, strreserved9, strreserved10, " \ " intreserved1, intreserved2, intreserved3, intreserved4, intreserved5, " \ " intreserved6, intreserved7, intreserved8, intreserved9, intreserved10, " \ " boolreserved1, boolreserved2, boolreserved3, boolreserved4, boolreserved5, " \ " boolreserved6, boolreserved7, boolreserved8, boolreserved9, boolreserved10 " \ " from t_dev_property where uid = '%s'", pDevUid); int nRet = CDBConnection::GetInstancePtr()->GetFieldValueList46(strSQLText ,list_dev_id, list_uid, list_port, list_device_name, list_device_baudrate ,list_commmode, list_devide_addr, list_is_use, list_protocol_dll_name ,list_special_device, list_data_bit, list_stop_bit, list_parity_bit, list_ip, list_ip_port, list_ini_name ,list_str_reserved1, list_str_reserved2, list_str_reserved3, list_str_reserved4, list_str_reserved5 ,list_str_reserved6, list_str_reserved7, list_str_reserved8, list_str_reserved9, list_str_reserved10 ,list_int_reserved1, list_int_reserved2, list_int_reserved3, list_int_reserved4, list_int_reserved5 ,list_int_reserved6, list_int_reserved7, list_int_reserved8, list_int_reserved9, list_int_reserved10 ,list_bool_reserved1, list_bool_reserved2, list_bool_reserved3, list_bool_reserved4, list_bool_reserved5 ,list_bool_reserved6, list_bool_reserved7, list_bool_reserved8, list_bool_reserved9, list_bool_reserved10); if( 0 == list_dev_id.size() || 0 == list_uid.size() || 0 == list_port.size() || 0 == list_device_name.size() || 0 == list_device_baudrate.size() || 0 == list_commmode.size() || 0 == list_devide_addr.size() || 0 == list_is_use.size() || 0 == list_protocol_dll_name.size() || 0 == list_special_device.size() || 0 == list_data_bit.size() || 0 == list_stop_bit.size() || 0 == list_parity_bit.size() || 0 == list_ip.size() || 0 == list_ip_port.size() || 0 == list_ini_name.size() || 0 == list_str_reserved1.size() || 0 == list_str_reserved2.size() || 0 == list_str_reserved3.size() || 0 == list_str_reserved4.size() || 0 == list_str_reserved5.size() || 0 == list_str_reserved6.size() || 0 == list_str_reserved7.size() || 0 == list_str_reserved8.size() || 0 == list_str_reserved9.size() || 0 == list_str_reserved10.size() || 0 == list_int_reserved1.size() || 0 == list_int_reserved2.size() || 0 == list_int_reserved3.size() || 0 == list_int_reserved4.size() || 0 == list_int_reserved5.size() || 0 == list_int_reserved6.size() || 0 == list_int_reserved7.size() || 0 == list_int_reserved8.size() || 0 == list_int_reserved9.size() || 0 == list_int_reserved10.size() || 0 == list_bool_reserved1.size() || 0 == list_bool_reserved2.size() || 0 == list_bool_reserved3.size() || 0 == list_bool_reserved4.size() || 0 == list_bool_reserved5.size() || 0 == list_bool_reserved6.size() || 0 == list_bool_reserved7.size() || 0 == list_bool_reserved8.size() || 0 == list_bool_reserved9.size() || 0 == list_bool_reserved10.size() ) { LOG4C((LOG_NOTICE, "GetDevInfo GetFieldValueList46 list size = 0")); return 0; } if( nRet != -1 ) { for( it_dev_id = list_dev_id.begin(), it_uid = list_uid.begin(), it_port = list_port.begin() ,it_device_name = list_device_name.begin(), it_device_baudrate = list_device_baudrate.begin() ,it_commmode = list_commmode.begin(), it_devide_addr = list_devide_addr.begin() ,it_is_use = list_is_use.begin(),it_protocol_dll_name = list_protocol_dll_name.begin() ,it_special_device = list_special_device.begin(), it_data_bit = list_data_bit.begin() ,it_stop_bit = list_stop_bit.begin(), it_parity_bit = list_parity_bit.begin(), it_ip = list_ip.begin() ,it_ip_port = list_ip_port.begin(), it_ini_name = list_ini_name.begin() ,it_str_reserved1 = list_str_reserved1.begin(), it_str_reserved2 = list_str_reserved2.begin() ,it_str_reserved3 = list_str_reserved3.begin(), it_str_reserved4 = list_str_reserved4.begin() ,it_str_reserved5 = list_str_reserved5.begin(), it_str_reserved6 = list_str_reserved6.begin() ,it_str_reserved7 = list_str_reserved7.begin(), it_str_reserved8 = list_str_reserved8.begin() ,it_str_reserved9 = list_str_reserved9.begin(), it_str_reserved10 = list_str_reserved10.begin() ,it_int_reserved1 = list_int_reserved1.begin(), it_int_reserved2 = list_int_reserved2.begin() ,it_int_reserved3 = list_int_reserved3.begin(), it_int_reserved4 = list_int_reserved4.begin() ,it_int_reserved5 = list_int_reserved5.begin(), it_int_reserved6 = list_int_reserved6.begin() ,it_int_reserved7 = list_int_reserved7.begin(), it_int_reserved8 = list_int_reserved8.begin() ,it_int_reserved9 = list_int_reserved9.begin(), it_int_reserved10 = list_int_reserved10.begin() ,it_bool_reserved1 = list_bool_reserved1.begin(), it_bool_reserved2 = list_bool_reserved2.begin() ,it_bool_reserved3 = list_bool_reserved3.begin(), it_bool_reserved4 = list_bool_reserved4.begin() ,it_bool_reserved5 = list_bool_reserved5.begin(), it_bool_reserved6 = list_bool_reserved6.begin() ,it_bool_reserved7 = list_bool_reserved7.begin(), it_bool_reserved8 = list_bool_reserved8.begin() ,it_bool_reserved9 = list_bool_reserved9.begin(), it_bool_reserved10 = list_bool_reserved10.begin(); it_dev_id != list_dev_id.end(), it_uid != list_uid.end(), it_port != list_port.end() ,it_device_name != list_device_name.end(), it_device_baudrate != list_device_baudrate.end() ,it_commmode != list_commmode.end(), it_devide_addr != list_devide_addr.end() ,it_is_use != list_is_use.end(),it_protocol_dll_name != list_protocol_dll_name.end() ,it_special_device != list_special_device.end(), it_data_bit != list_data_bit.end() ,it_stop_bit != list_stop_bit.end(), it_parity_bit != list_parity_bit.end(), it_ip != list_ip.end() ,it_ip_port != list_ip_port.end(), it_ini_name != list_ini_name.end() ,it_str_reserved1 != list_str_reserved1.end(), it_str_reserved2 != list_str_reserved2.end() ,it_str_reserved3 != list_str_reserved3.end(), it_str_reserved4 != list_str_reserved4.end() ,it_str_reserved5 != list_str_reserved5.end(), it_str_reserved6 != list_str_reserved6.end() ,it_str_reserved7 != list_str_reserved7.end(), it_str_reserved8 != list_str_reserved8.end() ,it_str_reserved9 != list_str_reserved9.end(), it_str_reserved10 != list_str_reserved10.end() ,it_int_reserved1 != list_int_reserved1.end(), it_int_reserved2 != list_int_reserved2.end() ,it_int_reserved3 != list_int_reserved3.end(), it_int_reserved4 != list_int_reserved4.end() ,it_int_reserved5 != list_int_reserved5.end(), it_int_reserved6 != list_int_reserved6.end() ,it_int_reserved7 != list_int_reserved7.end(), it_int_reserved8 != list_int_reserved8.end() ,it_int_reserved9 != list_int_reserved9.end(), it_int_reserved10 != list_int_reserved10.end() ,it_bool_reserved1 != list_bool_reserved1.end(), it_bool_reserved2 != list_bool_reserved2.end() ,it_bool_reserved3 != list_bool_reserved3.end(), it_bool_reserved4 != list_bool_reserved4.end() ,it_bool_reserved5 != list_bool_reserved5.end(), it_bool_reserved6 != list_bool_reserved6.end() ,it_bool_reserved7 != list_bool_reserved7.end(), it_bool_reserved8 != list_bool_reserved8.end() ,it_bool_reserved9 != list_bool_reserved9.end(), it_bool_reserved10 != list_bool_reserved10.end(); ) { // 获取设备ID pDev->m_iID = atoi((*it_dev_id++).c_str()); // 获取设备UID pDev->m_strUid = (*it_uid++).c_str(); // 获取设备端口号 pDev->m_iPort = atoi((*it_port++).c_str()); // 获取设备名称 pDev->m_strDeviceName = (*it_device_name++).c_str(); // 获取设备的波特率 pDev->m_iBaudrate = atoi((*it_device_baudrate++).c_str()); // 获取设备的数据位 pDev->m_iDatabit = atoi((*it_data_bit++).c_str()); // 获取设备的停止位 pDev->m_iStopbit = atoi((*it_stop_bit++).c_str()); // 获取设备的校验位 pDev->m_iParitybit = atoi((*it_parity_bit++).c_str()); // 通信的方式 pDev->m_iCommmode = atoi((*it_commmode++).c_str()); // 设备地址 pDev->m_iDevideaddr = atoi((*it_devide_addr++).c_str()); // 设备是否启用 CString strIsUse = (*it_is_use++).c_str(); if( 0 == atoi(strIsUse) ) { pDev->m_iIsuse = FALSE; } else { pDev->m_iIsuse = TRUE; } // 协议DLL名称 pDev->m_strProtocoldllname = (*it_protocol_dll_name++).c_str(); // Modbus Rtu;Modbus Ascii;Modbus Tcp;Snmp;RS232; CString strSpecialDevice = (*it_special_device++).c_str(); pDev->m_bySpecialdevice = atoi(strSpecialDevice); //LOG4C((LOG_NOTICE, "device name = %s, specialdevice = %d, %s", pDev->m_strDeviceName, pDev->m_bySpecialdevice, strSpecialDevice)); // 设备IP pDev->m_strIp = (*it_ip++).c_str(); // 网络通信端口 pDev->m_iIpport = atoi((*it_ip_port++).c_str()); // ini配置文件名称 pDev->m_strIniName = (*it_ini_name++).c_str(); // 字符串预留1 pDev->m_strReserved1 = (*it_str_reserved1++).c_str(); // 字符串预留2 pDev->m_strReserved2 = (*it_str_reserved2++).c_str(); // 字符串预留3 pDev->m_strReserved3 = (*it_str_reserved3++).c_str(); // 字符串预留4 pDev->m_strReserved4 = (*it_str_reserved4++).c_str(); // 字符串预留5 pDev->m_strReserved5 = (*it_str_reserved5++).c_str(); // 字符串预留6 pDev->m_strReserved6 = (*it_str_reserved6++).c_str(); // 字符串预留7 pDev->m_strReserved7 = (*it_str_reserved7++).c_str(); // 字符串预留8 pDev->m_strReserved8 = (*it_str_reserved8++).c_str(); // 字符串预留9 pDev->m_strReserved9 = (*it_str_reserved9++).c_str(); // 字符串预留10 pDev->m_strReserved10 = (*it_str_reserved10++).c_str(); // 整形预留1 pDev->m_nReserved1 = atoi((*it_int_reserved1++).c_str()); // 整形预留2 pDev->m_nReserved2 = atoi((*it_int_reserved2++).c_str()); // 整形预留3 pDev->m_nReserved3 = atoi((*it_int_reserved3++).c_str()); // 整形预留4 pDev->m_nReserved4 = atoi((*it_int_reserved4++).c_str()); // 整形预留5 pDev->m_nReserved5 = atoi((*it_int_reserved5++).c_str()); // 整形预留6 pDev->m_nReserved6 = atoi((*it_int_reserved6++).c_str()); // 整形预留7 pDev->m_nReserved7 = atoi((*it_int_reserved7++).c_str()); // 整形预留8 pDev->m_nReserved8 = atoi((*it_int_reserved8++).c_str()); // 整形预留9 pDev->m_nReserved9 = atoi((*it_int_reserved9++).c_str()); // 整形预留10 pDev->m_nReserved10 = atoi((*it_int_reserved10++).c_str()); //布尔型预留1 if( 0 == atoi((*it_bool_reserved1++).c_str()) ) { pDev->m_bReserved1 = false; } else { pDev->m_bReserved1 = true; } //布尔型预留2 if( 0 == atoi((*it_bool_reserved2++).c_str()) ) { pDev->m_bReserved2 = false; } else { pDev->m_bReserved2 = true; } //布尔型预留3 if( 0 == atoi((*it_bool_reserved3++).c_str()) ) { pDev->m_bReserved3 = false; } else { pDev->m_bReserved3 = true; } //布尔型预留4 if( 0 == atoi((*it_bool_reserved4++).c_str()) ) { pDev->m_bReserved4 = false; } else { pDev->m_bReserved4 = true; } //布尔型预留5 if( 0 == atoi((*it_bool_reserved5++).c_str()) ) { pDev->m_bReserved5 = false; } else { pDev->m_bReserved5 = true; } //布尔型预留6 if( 0 == atoi((*it_bool_reserved6++).c_str()) ) { pDev->m_bReserved6 = false; } else { pDev->m_bReserved6 = true; } //布尔型预留7 if( 0 == atoi((*it_bool_reserved7++).c_str()) ) { pDev->m_bReserved7 = false; } else { pDev->m_bReserved7 = true; } //布尔型预留8 if( 0 == atoi((*it_bool_reserved8++).c_str()) ) { pDev->m_bReserved8 = false; } else { pDev->m_bReserved8 = true; } //布尔型预留9 if( 0 == atoi((*it_bool_reserved9++).c_str()) ) { pDev->m_bReserved9 = false; } else { pDev->m_bReserved9 = true; } //布尔型预留10 if( 0 == atoi((*it_bool_reserved10++).c_str()) ) { pDev->m_bReserved10 = false; } else { pDev->m_bReserved10 = true; } break; } } for( it_dev_id = list_dev_id.begin(), it_uid = list_uid.begin(), it_port = list_port.begin() ,it_device_name = list_device_name.begin(), it_device_baudrate = list_device_baudrate.begin() ,it_commmode = list_commmode.begin(), it_devide_addr = list_devide_addr.begin() ,it_is_use = list_is_use.begin(),it_protocol_dll_name = list_protocol_dll_name.begin() ,it_special_device = list_special_device.begin(), it_data_bit = list_data_bit.begin() ,it_stop_bit = list_stop_bit.begin(), it_parity_bit = list_parity_bit.begin(), it_ip = list_ip.begin() ,it_ip_port = list_ip_port.begin(), it_ini_name = list_ini_name.begin() ,it_str_reserved1 = list_str_reserved1.begin(), it_str_reserved2 = list_str_reserved2.begin() ,it_str_reserved3 = list_str_reserved3.begin(), it_str_reserved4 = list_str_reserved4.begin() ,it_str_reserved5 = list_str_reserved5.begin(), it_str_reserved6 = list_str_reserved6.begin() ,it_str_reserved7 = list_str_reserved7.begin(), it_str_reserved8 = list_str_reserved8.begin() ,it_str_reserved9 = list_str_reserved9.begin(), it_str_reserved10 = list_str_reserved10.begin() ,it_int_reserved1 = list_int_reserved1.begin(), it_int_reserved2 = list_int_reserved2.begin() ,it_int_reserved3 = list_int_reserved3.begin(), it_int_reserved4 = list_int_reserved4.begin() ,it_int_reserved5 = list_int_reserved5.begin(), it_int_reserved6 = list_int_reserved6.begin() ,it_int_reserved7 = list_int_reserved7.begin(), it_int_reserved8 = list_int_reserved8.begin() ,it_int_reserved9 = list_int_reserved9.begin(), it_int_reserved10 = list_int_reserved10.begin() ,it_bool_reserved1 = list_bool_reserved1.begin(), it_bool_reserved2 = list_bool_reserved2.begin() ,it_bool_reserved3 = list_bool_reserved3.begin(), it_bool_reserved4 = list_bool_reserved4.begin() ,it_bool_reserved5 = list_bool_reserved5.begin(), it_bool_reserved6 = list_bool_reserved6.begin() ,it_bool_reserved7 = list_bool_reserved7.begin(), it_bool_reserved8 = list_bool_reserved8.begin() ,it_bool_reserved9 = list_bool_reserved9.begin(), it_bool_reserved10 = list_bool_reserved10.begin(); it_dev_id != list_dev_id.end(), it_uid != list_uid.end(), it_port != list_port.end() ,it_device_name != list_device_name.end(), it_device_baudrate != list_device_baudrate.end() ,it_commmode != list_commmode.end(), it_devide_addr != list_devide_addr.end() ,it_is_use != list_is_use.end(),it_protocol_dll_name != list_protocol_dll_name.end() ,it_special_device != list_special_device.end(), it_data_bit != list_data_bit.end() ,it_stop_bit != list_stop_bit.end(), it_parity_bit != list_parity_bit.end(), it_ip != list_ip.end() ,it_ip_port != list_ip_port.end(), it_ini_name != list_ini_name.end() ,it_str_reserved1 != list_str_reserved1.end(), it_str_reserved2 != list_str_reserved2.end() ,it_str_reserved3 != list_str_reserved3.end(), it_str_reserved4 != list_str_reserved4.end() ,it_str_reserved5 != list_str_reserved5.end(), it_str_reserved6 != list_str_reserved6.end() ,it_str_reserved7 != list_str_reserved7.end(), it_str_reserved8 != list_str_reserved8.end() ,it_str_reserved9 != list_str_reserved9.end(), it_str_reserved10 != list_str_reserved10.end() ,it_int_reserved1 != list_int_reserved1.end(), it_int_reserved2 != list_int_reserved2.end() ,it_int_reserved3 != list_int_reserved3.end(), it_int_reserved4 != list_int_reserved4.end() ,it_int_reserved5 != list_int_reserved5.end(), it_int_reserved6 != list_int_reserved6.end() ,it_int_reserved7 != list_int_reserved7.end(), it_int_reserved8 != list_int_reserved8.end() ,it_int_reserved9 != list_int_reserved9.end(), it_int_reserved10 != list_int_reserved10.end() ,it_bool_reserved1 != list_bool_reserved1.end(), it_bool_reserved2 != list_bool_reserved2.end() ,it_bool_reserved3 != list_bool_reserved3.end(), it_bool_reserved4 != list_bool_reserved4.end() ,it_bool_reserved5 != list_bool_reserved5.end(), it_bool_reserved6 != list_bool_reserved6.end() ,it_bool_reserved7 != list_bool_reserved7.end(), it_bool_reserved8 != list_bool_reserved8.end() ,it_bool_reserved9 != list_bool_reserved9.end(), it_bool_reserved10 != list_bool_reserved10.end(); ) { list_dev_id.erase(it_dev_id++); list_uid.erase(it_uid++); list_port.erase(it_port++); list_device_name.erase(it_device_name++); list_device_baudrate.erase(it_device_baudrate++); list_commmode.erase(it_commmode++); list_devide_addr.erase(it_devide_addr++); list_is_use.erase(it_is_use++); list_protocol_dll_name.erase(it_protocol_dll_name++); list_special_device.erase(it_special_device++); list_data_bit.erase(it_data_bit++); list_stop_bit.erase(it_stop_bit++); list_parity_bit.erase(it_parity_bit++); list_ip.erase(it_ip++); list_ip_port.erase(it_ip_port++); list_ini_name.erase(it_ini_name++); list_str_reserved1.erase(it_str_reserved1++); list_str_reserved2.erase(it_str_reserved2++); list_str_reserved3.erase(it_str_reserved3++); list_str_reserved4.erase(it_str_reserved4++); list_str_reserved5.erase(it_str_reserved5++); list_str_reserved6.erase(it_str_reserved6++); list_str_reserved7.erase(it_str_reserved7++); list_str_reserved8.erase(it_str_reserved8++); list_str_reserved9.erase(it_str_reserved9++); list_str_reserved10.erase(it_str_reserved10++); list_int_reserved1.erase(it_int_reserved1++); list_int_reserved2.erase(it_int_reserved2++); list_int_reserved3.erase(it_int_reserved3++); list_int_reserved4.erase(it_int_reserved4++); list_int_reserved5.erase(it_int_reserved5++); list_int_reserved6.erase(it_int_reserved6++); list_int_reserved7.erase(it_int_reserved7++); list_int_reserved8.erase(it_int_reserved8++); list_int_reserved9.erase(it_int_reserved9++); list_int_reserved10.erase(it_int_reserved10++); list_bool_reserved1.erase(it_bool_reserved1++); list_bool_reserved2.erase(it_bool_reserved2++); list_bool_reserved3.erase(it_bool_reserved3++); list_bool_reserved4.erase(it_bool_reserved4++); list_bool_reserved5.erase(it_bool_reserved5++); list_bool_reserved6.erase(it_bool_reserved6++); list_bool_reserved7.erase(it_bool_reserved7++); list_bool_reserved8.erase(it_bool_reserved8++); list_bool_reserved9.erase(it_bool_reserved9++); list_bool_reserved10.erase(it_bool_reserved10++); } return nRet; } //获取变量 INT CDBInterface::GetVarInfo(void *pPara, CHAR *pUid) { CDevice *pDev = (CDevice *)pPara; CHAR strSQLText[MAX_SQL_LENGTH * 2] = {0}; list list_var_id, list_set_value, list_var_name, list_uid, list_upper_limit; list list_lower_limit, list_normal_state, list_identify_time, list_redetect_time; list list_normal_is_notice, list_warn_level, list_snmp_oid, list_fields, list_description; list list_max_values, list_min_values, list_max_convtrate, list_min_convtrate, list_is_save; list list_collect_freq, list_var_type_id, list_readonly, list_is_dde, list_address, list_unit; list list_reccurve, list_register_num, list_child_id, list_var_item_id, list_rearm, list_offsets; list list_funcid, list_data_len, list_coefficient, list_realtimeflag; list list_rs232_cmd, list_rs232_type, list_rs232_index; list list_str_reserved1, list_str_reserved2, list_str_reserved3, list_str_reserved4, list_str_reserved5; list list_str_reserved6, list_str_reserved7, list_str_reserved8, list_str_reserved9, list_str_reserved10; list list_int_reserved1, list_int_reserved2, list_int_reserved3, list_int_reserved4, list_int_reserved5; list list_int_reserved6, list_int_reserved7, list_int_reserved8, list_int_reserved9, list_int_reserved10; list list_bool_reserved1, list_bool_reserved2, list_bool_reserved3, list_bool_reserved4, list_bool_reserved5; list list_bool_reserved6, list_bool_reserved7, list_bool_reserved8, list_bool_reserved9, list_bool_reserved10; list::iterator it_var_id, it_set_value, it_var_name, it_uid, it_upper_limit; list::iterator it_lower_limit, it_normal_state, it_identify_time, it_redetect_time; list::iterator it_normal_is_notice, it_warn_level, it_snmp_oid, it_fields, it_description; list::iterator it_max_values, it_min_values, it_max_convtrate, it_min_convtrate, it_is_save; list::iterator it_collect_freq, it_var_type_id, it_readonly, it_is_dde, it_address, it_unit; list::iterator it_reccurve, it_register_num, it_child_id, it_var_item_id, it_rearm, it_offsets; list::iterator it_funcid, it_data_len, it_coefficient, it_realtimeflag; list::iterator it_rs232_cmd, it_rs232_type, it_rs232_index; list::iterator it_str_reserved1, it_str_reserved2, it_str_reserved3, it_str_reserved4, it_str_reserved5; list::iterator it_str_reserved6, it_str_reserved7, it_str_reserved8, it_str_reserved9, it_str_reserved10; list::iterator it_int_reserved1, it_int_reserved2, it_int_reserved3, it_int_reserved4, it_int_reserved5; list::iterator it_int_reserved6, it_int_reserved7, it_int_reserved8, it_int_reserved9, it_int_reserved10; list::iterator it_bool_reserved1, it_bool_reserved2, it_bool_reserved3, it_bool_reserved4, it_bool_reserved5; list::iterator it_bool_reserved6, it_bool_reserved7, it_bool_reserved8, it_bool_reserved9, it_bool_reserved10; if (!_stricmp(m_chDBType, "SQL SERVER")) { sprintf(strSQLText, "select id, setvalue, varname, uid, upperlimit, lowerlimit, normalstate, " \ "identifytime, redetecttime, normalisnotice, warnlevel, snmpoid, fields, description, " \ "maxvalues, minvalues, maxconvtrate, minconvtrate, issave, collectfrequence, " \ "vartypeid, readonly, isdde, address, unit, reccurve, registernum, childid, " \ "var_item_id, rearm, [offsets], funcid, datalen, coefficient, realtimeflag, " \ "rs232cmd, rs232type, rs232index, " \ "strreserved1, strreserved2, strreserved3, strreserved4, strreserved5, " \ "strreserved6, strreserved7, strreserved8, strreserved9, strreserved10, " \ "intreserved1, intreserved2, intreserved3, intreserved4, intreserved5, " \ "intreserved6, intreserved7, intreserved8, intreserved9, intreserved10, " \ "boolreserved1, boolreserved2, boolreserved3, boolreserved4, boolreserved5, " \ "boolreserved6, boolreserved7, boolreserved8, boolreserved9, boolreserved10 " \ "from t_dev_variant where uid = \'%s\' order by id", pUid); } else if (!_stricmp(m_chDBType, "ACCESS97")) { sprintf(strSQLText, "select id, setvalue, varname, uid, upperlimit, lowerlimit, normalstate, " \ "identifytime, redetecttime, normalisnotice, warnlevel, snmpoid, fields, description, " \ "maxvalues, minvalues, maxconvtrate, minconvtrate, issave, collectfrequence, " \ "vartypeid, readonly, isdde, address, unit, reccurve, registernum, childid, " \ "var_item_id, rearm, [offsets], funcid, datalen, coefficient, realtimeflag, " \ "rs232cmd, rs232type, rs232index, " \ "strreserved1, strreserved2, strreserved3, strreserved4, strreserved5, " \ "strreserved6, strreserved7, strreserved8, strreserved9, strreserved10, " \ "intreserved1, intreserved2, intreserved3, intreserved4, intreserved5, " \ "intreserved6, intreserved7, intreserved8, intreserved9, intreserved10, " \ "boolreserved1, boolreserved2, boolreserved3, boolreserved4, boolreserved5, " \ "boolreserved6, boolreserved7, boolreserved8, boolreserved9, boolreserved10 " \ "from t_dev_variant where uid = \'%s\' order by id", pUid); } else if (!_stricmp(m_chDBType, "ACCESS2000")) { sprintf(strSQLText, "select id, setvalue, varname, uid, upperlimit, lowerlimit, normalstate, " \ "identifytime, redetecttime, normalisnotice, warnlevel, snmpoid, fields, description, " \ "maxvalues, minvalues, maxconvtrate, minconvtrate, issave, collectfrequence, " \ "vartypeid, readonly, isdde, address, unit, reccurve, registernum, childid, " \ "var_item_id, rearm, [offsets], funcid, datalen, coefficient, realtimeflag, " \ "rs232cmd, rs232type, rs232index, " \ "strreserved1, strreserved2, strreserved3, strreserved4, strreserved5, " \ "strreserved6, strreserved7, strreserved8, strreserved9, strreserved10, " \ "intreserved1, intreserved2, intreserved3, intreserved4, intreserved5, " \ "intreserved6, intreserved7, intreserved8, intreserved9, intreserved10, " \ "boolreserved1, boolreserved2, boolreserved3, boolreserved4, boolreserved5, " \ "boolreserved6, boolreserved7, boolreserved8, boolreserved9, boolreserved10 " \ "from t_dev_variant where uid = \'%s\' order by id", pUid); } else if(!_stricmp(m_chDBType, "PGSQL")) { sprintf(strSQLText, "select id, setvalue, varname, uid, upperlimit, lowerlimit, normalstate, " \ "identifytime, redetecttime, normalisnotice, warnlevel, snmpoid, fields, description, " \ "maxvalues, minvalues, maxconvtrate, minconvtrate, issave, collectfrequence, " \ "vartypeid, readonly, isdde, address, unit, reccurve, registernum, childid, " \ "var_item_id, rearm, offsets, funcid, datalen, coefficient, realtimeflag, " \ "rs232cmd, rs232type, rs232index, " \ "strreserved1, strreserved2, strreserved3, strreserved4, strreserved5, " \ "strreserved6, strreserved7, strreserved8, strreserved9, strreserved10, " \ "intreserved1, intreserved2, intreserved3, intreserved4, intreserved5, " \ "intreserved6, intreserved7, intreserved8, intreserved9, intreserved10, " \ "boolreserved1, boolreserved2, boolreserved3, boolreserved4, boolreserved5, " \ "boolreserved6, boolreserved7, boolreserved8, boolreserved9, boolreserved10 " \ "from t_dev_variant where uid = \'%s\' order by id", pUid); } //LOG4C((LOG_NOTICE, "%s", strSQLText)); int nRet = CDBConnection::GetInstancePtr()->GetFieldValueList68(strSQLText ,list_var_id, list_set_value, list_var_name, list_uid, list_upper_limit ,list_lower_limit, list_normal_state, list_identify_time, list_redetect_time ,list_normal_is_notice, list_warn_level, list_snmp_oid, list_fields, list_description ,list_max_values, list_min_values, list_max_convtrate, list_min_convtrate, list_is_save ,list_collect_freq, list_var_type_id, list_readonly, list_is_dde, list_address, list_unit ,list_reccurve, list_register_num, list_child_id, list_var_item_id, list_rearm, list_offsets ,list_funcid, list_data_len, list_coefficient, list_realtimeflag ,list_rs232_cmd, list_rs232_type, list_rs232_index ,list_str_reserved1, list_str_reserved2, list_str_reserved3, list_str_reserved4, list_str_reserved5 ,list_str_reserved6, list_str_reserved7, list_str_reserved8, list_str_reserved9, list_str_reserved10 ,list_int_reserved1, list_int_reserved2, list_int_reserved3, list_int_reserved4, list_int_reserved5 ,list_int_reserved6, list_int_reserved7, list_int_reserved8, list_int_reserved9, list_int_reserved10 ,list_bool_reserved1, list_bool_reserved2, list_bool_reserved3, list_bool_reserved4, list_bool_reserved5 ,list_bool_reserved6, list_bool_reserved7, list_bool_reserved8, list_bool_reserved9, list_bool_reserved10); if( 0 == list_var_id.size() || 0 == list_set_value.size() || 0 == list_var_name.size() || 0 == list_uid.size() || 0 == list_upper_limit.size() || 0 == list_lower_limit.size() || 0 == list_normal_state.size() || 0 == list_identify_time.size() || 0 == list_redetect_time.size() || 0 == list_normal_is_notice.size() || 0 == list_warn_level.size() || 0 == list_snmp_oid.size() || 0 == list_fields.size() || 0 == list_description.size() || 0 == list_max_values.size() || 0 == list_min_values.size() || 0 == list_max_convtrate.size() || 0 == list_min_convtrate.size() || 0 == list_is_save.size() || 0 == list_collect_freq.size() || 0 == list_var_type_id.size() || 0 == list_readonly.size() || 0 == list_is_dde.size() || 0 == list_address.size() || 0 == list_unit.size() || 0 == list_reccurve.size() || 0 == list_register_num.size() || 0 == list_child_id.size() || 0 == list_var_item_id.size() || 0 == list_rearm.size() || 0 == list_offsets.size() || 0 == list_funcid.size() || 0 == list_data_len.size() || 0 == list_coefficient.size() || 0 == list_realtimeflag.size() || 0 == list_rs232_cmd.size() || 0 == list_rs232_type.size() || 0 == list_rs232_index.size() || 0 == list_str_reserved1.size() || 0 == list_str_reserved2.size() || 0 == list_str_reserved3.size() || 0 == list_str_reserved4.size() || 0 == list_str_reserved5.size() || 0 == list_str_reserved6.size() || 0 == list_str_reserved7.size() || 0 == list_str_reserved8.size() || 0 == list_str_reserved9.size() || 0 == list_str_reserved10.size() || 0 == list_int_reserved1.size() || 0 == list_int_reserved2.size() || 0 == list_int_reserved3.size() || 0 == list_int_reserved4.size() || 0 == list_int_reserved5.size() || 0 == list_int_reserved6.size() || 0 == list_int_reserved7.size() || 0 == list_int_reserved8.size() || 0 == list_int_reserved9.size() || 0 == list_int_reserved10.size() || 0 == list_bool_reserved1.size() || 0 == list_bool_reserved2.size() || 0 == list_bool_reserved3.size() || 0 == list_bool_reserved4.size() || 0 == list_bool_reserved5.size() || 0 == list_bool_reserved6.size() || 0 == list_bool_reserved7.size() || 0 == list_bool_reserved8.size() || 0 == list_bool_reserved9.size() || 0 == list_bool_reserved10.size() ) { LOG4C((LOG_NOTICE, "device name = %s has not variant!", pDev->m_strDeviceName)); return 0; } if( nRet != -1 ) { for( it_var_id = list_var_id.begin(), it_set_value = list_set_value.begin(), it_var_name = list_var_name.begin() ,it_uid = list_uid.begin(), it_upper_limit = list_upper_limit.begin() ,it_lower_limit = list_lower_limit.begin(), it_normal_state = list_normal_state.begin() ,it_identify_time = list_identify_time.begin(),it_redetect_time = list_redetect_time.begin() ,it_normal_is_notice = list_normal_is_notice.begin(), it_warn_level = list_warn_level.begin() ,it_snmp_oid = list_snmp_oid.begin(), it_fields = list_fields.begin(), it_description = list_description.begin() ,it_max_values = list_max_values.begin(), it_min_values = list_min_values.begin() ,it_max_convtrate = list_max_convtrate.begin(), it_min_convtrate = list_min_convtrate.begin() ,it_is_save = list_is_save.begin(), it_collect_freq = list_collect_freq.begin(), it_var_type_id = list_var_type_id.begin() ,it_readonly = list_readonly.begin(), it_is_dde = list_is_dde.begin(), it_address = list_address.begin() ,it_unit = list_unit.begin(), it_reccurve = list_reccurve.begin(), it_register_num = list_register_num.begin() ,it_child_id = list_child_id.begin(), it_var_item_id = list_var_item_id.begin() ,it_rearm = list_rearm.begin(), it_offsets = list_offsets.begin(), it_funcid = list_funcid.begin() ,it_data_len = list_data_len.begin(), it_coefficient = list_coefficient.begin(), it_realtimeflag = list_realtimeflag.begin() ,it_rs232_cmd = list_rs232_cmd.begin(), it_rs232_type = list_rs232_type.begin(), it_rs232_index = list_rs232_index.begin() ,it_str_reserved1 = list_str_reserved1.begin(), it_str_reserved2 = list_str_reserved2.begin() ,it_str_reserved3 = list_str_reserved3.begin(), it_str_reserved4 = list_str_reserved4.begin() ,it_str_reserved5 = list_str_reserved5.begin(), it_str_reserved6 = list_str_reserved6.begin() ,it_str_reserved7 = list_str_reserved7.begin(), it_str_reserved8 = list_str_reserved8.begin() ,it_str_reserved9 = list_str_reserved9.begin(), it_str_reserved10 = list_str_reserved10.begin() ,it_int_reserved1 = list_int_reserved1.begin(), it_int_reserved2 = list_int_reserved2.begin() ,it_int_reserved3 = list_int_reserved3.begin(), it_int_reserved4 = list_int_reserved4.begin() ,it_int_reserved5 = list_int_reserved5.begin(), it_int_reserved6 = list_int_reserved6.begin() ,it_int_reserved7 = list_int_reserved7.begin(), it_int_reserved8 = list_int_reserved8.begin() ,it_int_reserved9 = list_int_reserved9.begin(), it_int_reserved10 = list_int_reserved10.begin() ,it_bool_reserved1 = list_bool_reserved1.begin(), it_bool_reserved2 = list_bool_reserved2.begin() ,it_bool_reserved3 = list_bool_reserved3.begin(), it_bool_reserved4 = list_bool_reserved4.begin() ,it_bool_reserved5 = list_bool_reserved5.begin(), it_bool_reserved6 = list_bool_reserved6.begin() ,it_bool_reserved7 = list_bool_reserved7.begin(), it_bool_reserved8 = list_bool_reserved8.begin() ,it_bool_reserved9 = list_bool_reserved9.begin(), it_bool_reserved10 = list_bool_reserved10.begin(); it_var_id != list_var_id.end(), it_set_value != list_set_value.end(), it_var_name != list_var_name.end() ,it_uid != list_uid.end(), it_upper_limit != list_upper_limit.end() ,it_lower_limit != list_lower_limit.end(), it_normal_state != list_normal_state.end() ,it_identify_time != list_identify_time.end(),it_redetect_time != list_redetect_time.end() ,it_normal_is_notice != list_normal_is_notice.end(), it_warn_level != list_warn_level.end() ,it_snmp_oid != list_snmp_oid.end(), it_fields != list_fields.end(), it_description != list_description.end() ,it_max_values != list_max_values.end(), it_min_values != list_min_values.end() ,it_max_convtrate != list_max_convtrate.end(), it_min_convtrate != list_min_convtrate.end() ,it_is_save != list_is_save.end(), it_collect_freq != list_collect_freq.end(), it_var_type_id != list_var_type_id.end() ,it_readonly != list_readonly.end(), it_is_dde != list_is_dde.end(), it_address != list_address.end() ,it_unit != list_unit.end(), it_reccurve != list_reccurve.end(), it_register_num != list_register_num.end() ,it_child_id != list_child_id.end(), it_var_item_id != list_var_item_id.end() ,it_rearm != list_rearm.end(), it_offsets != list_offsets.end(), it_funcid != list_funcid.end() ,it_data_len != list_data_len.end(), it_coefficient != list_coefficient.end(), it_realtimeflag != list_realtimeflag.end() ,it_rs232_cmd != list_rs232_cmd.end(), it_rs232_type != list_rs232_type.end(), it_rs232_index != list_rs232_index.end() ,it_str_reserved1 != list_str_reserved1.end(), it_str_reserved2 != list_str_reserved2.end() ,it_str_reserved3 != list_str_reserved3.end(), it_str_reserved4 != list_str_reserved4.end() ,it_str_reserved5 != list_str_reserved5.end(), it_str_reserved6 != list_str_reserved6.end() ,it_str_reserved7 != list_str_reserved7.end(), it_str_reserved8 != list_str_reserved8.end() ,it_str_reserved9 != list_str_reserved9.end(), it_str_reserved10 != list_str_reserved10.end() ,it_int_reserved1 != list_int_reserved1.end(), it_int_reserved2 != list_int_reserved2.end() ,it_int_reserved3 != list_int_reserved3.end(), it_int_reserved4 != list_int_reserved4.end() ,it_int_reserved5 != list_int_reserved5.end(), it_int_reserved6 != list_int_reserved6.end() ,it_int_reserved7 != list_int_reserved7.end(), it_int_reserved8 != list_int_reserved8.end() ,it_int_reserved9 != list_int_reserved9.end(), it_int_reserved10 != list_int_reserved10.end() ,it_bool_reserved1 != list_bool_reserved1.end(), it_bool_reserved2 != list_bool_reserved2.end() ,it_bool_reserved3 != list_bool_reserved3.end(), it_bool_reserved4 != list_bool_reserved4.end() ,it_bool_reserved5 != list_bool_reserved5.end(), it_bool_reserved6 != list_bool_reserved6.end() ,it_bool_reserved7 != list_bool_reserved7.end(), it_bool_reserved8 != list_bool_reserved8.end() ,it_bool_reserved9 != list_bool_reserved9.end(), it_bool_reserved10 != list_bool_reserved10.end(); ) { CBaseVar *pBaseVar; pBaseVar = new CBaseVar(); int nVarID; CString strUid; nVarID = atoi((*it_var_id++).c_str()); strUid = (*it_uid++).c_str(); // 变量ID pBaseVar->m_nVarID = nVarID; // 设定值 pBaseVar->m_strSetValue = (*it_set_value++).c_str(); // 变量名称 pBaseVar->m_strName = (*it_var_name++).c_str(); // 变量Uid pBaseVar->m_strVarUID = strUid; // 上限 pBaseVar->m_nUpperLimit = atoi((*it_upper_limit++).c_str()); //LOG4C((LOG_NOTICE, "GetVarInfo pBaseVar->m_nUpperLimit = %d", pBaseVar->m_nUpperLimit)); // 下限 pBaseVar->m_nLowerLimit = atoi((*it_lower_limit++).c_str()); // 正常状态 pBaseVar->m_nNormalState = atoi((*it_normal_state++).c_str()); // 辨识时间 pBaseVar->m_nIdentifyTime = atoi((*it_identify_time++).c_str()); // 重新检测时间 pBaseVar->m_nReDetectTime = atoi((*it_redetect_time++).c_str()); // 恢复正常是否触发远程报警 CString strNormalIsNotice = (*it_normal_is_notice++).c_str(); if( 0 == atoi(strNormalIsNotice) ) { pBaseVar->m_bNormalIsNotice = FALSE; } else { pBaseVar->m_bNormalIsNotice = TRUE; } // 报警级别 pBaseVar->m_nWaringLevel = atoi((*it_warn_level++).c_str()); // Snmp对象OID pBaseVar->m_strSnmpoi = (*it_snmp_oid++).c_str(); // Snmp对象域 pBaseVar->m_strFields = (*it_fields++).c_str(); // 变量描述 pBaseVar->m_strDesc = (*it_description++).c_str(); // 最大值 pBaseVar->m_nMaxValues = atoi((*it_max_values++).c_str()); // 最小值 pBaseVar->m_nMinValues = atoi((*it_min_values++).c_str()); // 最大比例 pBaseVar->m_nMaxConvtRate = atoi((*it_max_convtrate++).c_str()); // 最小比例 pBaseVar->m_nMinConvtRate = atoi((*it_min_convtrate++).c_str()); // 是否保存数值 CString strIsSave = (*it_is_save++).c_str(); if( 0 == atoi(strIsSave) ) { pBaseVar->m_bIsSave = FALSE; } else { pBaseVar->m_bIsSave = TRUE; } //LOG4C((LOG_NOTICE, "var desc = %s, pBaseVar->m_bIsSave = %d, strIsSave = %s", pBaseVar->m_strDesc, pBaseVar->m_bIsSave, strIsSave)); // 采集频率 pBaseVar->m_nCollectFreq = atoi((*it_collect_freq++).c_str()); // 变量类型ID pBaseVar->m_nVarTypeID = atoi((*it_var_type_id++).c_str()); // 读写权限 CString strReadOnly = (*it_readonly++).c_str(); if( 0 == atoi(strReadOnly) ) { pBaseVar->m_bReadOnly = FALSE; } else { pBaseVar->m_bReadOnly = TRUE; } // 是否DDE CString strDDE = (*it_is_dde++).c_str(); if( 0 == atoi(strDDE) ) { pBaseVar->m_bIsDDE = FALSE; } else { pBaseVar->m_bIsDDE = TRUE; } // 寄存器起始地址 pBaseVar->m_nRegStartAddr = atoi((*it_address++).c_str()); // 单位 pBaseVar->m_strUnit = (*it_unit++).c_str(); // 是否记录实时曲线 CString strRecCurve = (*it_reccurve++).c_str(); if( 0 == atoi(strRecCurve) ) { pBaseVar->m_bRecCurve = FALSE; } else { pBaseVar->m_bRecCurve = TRUE; } // 寄存器个数 pBaseVar->m_iRegisterNum = atoi((*it_register_num++).c_str()); // 变量子ID pBaseVar->m_iChildID = atoi((*it_child_id++).c_str()); // t_dev_varint_item表的ID pBaseVar->m_nVarItemID = atoi((*it_var_item_id++).c_str()); // 校正值 pBaseVar->m_nRearm = atoi((*it_rearm++).c_str()); // 偏移值 pBaseVar->m_nOffset = atoi((*it_offsets++).c_str()); // 功能码ID pBaseVar->m_iFuncID = atoi((*it_funcid++).c_str()); // 数据长度 pBaseVar->m_iDataLen = atoi((*it_data_len++).c_str()); // 系数 pBaseVar->m_dbCoefficient = atof((*it_coefficient++).c_str()); // 是否实时采集 CString strRealTimeFlag = (*it_realtimeflag++).c_str(); //LOG4C((LOG_NOTICE, "strRealTimeFlag = %s, atoi(strRealTimeFlag) = %d", strRealTimeFlag, atoi(strRealTimeFlag))); if( 0 == atoi(strRealTimeFlag) ) { pBaseVar->m_bRealTimeflag = FALSE; } else { pBaseVar->m_bRealTimeflag = TRUE; } //LOG4C((LOG_NOTICE, "pBaseVar->m_bRealTimeflag = %d", pBaseVar->m_bRealTimeflag)); // RS232命令 pBaseVar->m_strRs232cmd = (*it_rs232_cmd++).c_str(); // RS232类型 pBaseVar->m_strRs232type = (*it_rs232_type++).c_str(); // RS232索引 pBaseVar->m_strRs232Index = (*it_rs232_index++).c_str(); //LOG4C((LOG_NOTICE, "pBaseVar->m_strRs232Index = %s", pBaseVar->m_strRs232Index)); // 字符串预留1 pBaseVar->m_strReserved1 = (*it_str_reserved1++).c_str(); // 字符串预留2 pBaseVar->m_strReserved2 = (*it_str_reserved2++).c_str(); // 字符串预留3 pBaseVar->m_strReserved3 = (*it_str_reserved3++).c_str(); // 字符串预留4 pBaseVar->m_strReserved4 = (*it_str_reserved4++).c_str(); // 字符串预留5 pBaseVar->m_strReserved5 = (*it_str_reserved5++).c_str(); // 字符串预留6 pBaseVar->m_strReserved6 = (*it_str_reserved6++).c_str(); // 字符串预留7 pBaseVar->m_strReserved7 = (*it_str_reserved7++).c_str(); // 字符串预留8 pBaseVar->m_strReserved8 = (*it_str_reserved8++).c_str(); // 字符串预留9 pBaseVar->m_strReserved9 = (*it_str_reserved9++).c_str(); // 字符串预留10 pBaseVar->m_strReserved10 = (*it_str_reserved10++).c_str(); // 整形预留1 pBaseVar->m_nReserved1 = atoi((*it_int_reserved1++).c_str()); // 整形预留2 pBaseVar->m_nReserved2 = atoi((*it_int_reserved2++).c_str()); // 整形预留3 pBaseVar->m_nReserved3 = atoi((*it_int_reserved3++).c_str()); // 整形预留4 pBaseVar->m_nReserved4 = atoi((*it_int_reserved4++).c_str()); // 整形预留5 pBaseVar->m_nReserved5 = atoi((*it_int_reserved5++).c_str()); // 整形预留6 pBaseVar->m_nReserved6 = atoi((*it_int_reserved6++).c_str()); // 整形预留7 pBaseVar->m_nReserved7 = atoi((*it_int_reserved7++).c_str()); // 整形预留8 pBaseVar->m_nReserved8 = atoi((*it_int_reserved8++).c_str()); // 整形预留9 pBaseVar->m_nReserved9 = atoi((*it_int_reserved9++).c_str()); // 整形预留10 pBaseVar->m_nReserved10 = atoi((*it_int_reserved10++).c_str()); CString strBoolReserved1 = (*it_bool_reserved1++).c_str(); //布尔型预留1 if( 0 == atoi(strBoolReserved1) ) { pBaseVar->m_bReserved1 = false; } else { pBaseVar->m_bReserved1 = true; } //布尔型预留2 if( 0 == atoi((*it_bool_reserved2++).c_str()) ) { pBaseVar->m_bReserved2 = false; } else { pBaseVar->m_bReserved2 = true; } CString strBoolReserved3 = (*it_bool_reserved3++).c_str(); //LOG4C((LOG_NOTICE, "strBoolReserved3=%s", strBoolReserved3)); //布尔型预留3 if( 0 == atoi(strBoolReserved3) ) { pBaseVar->m_bReserved3 = false; } else { pBaseVar->m_bReserved3 = true; } //布尔型预留4 if( 0 == atoi((*it_bool_reserved4++).c_str()) ) { pBaseVar->m_bReserved4 = false; } else { pBaseVar->m_bReserved4 = true; } //布尔型预留5 if( 0 == atoi((*it_bool_reserved5++).c_str()) ) { pBaseVar->m_bReserved5 = false; } else { pBaseVar->m_bReserved5 = true; } //布尔型预留6 if( 0 == atoi((*it_bool_reserved6++).c_str()) ) { pBaseVar->m_bReserved6 = false; } else { pBaseVar->m_bReserved6 = true; } //布尔型预留7 if( 0 == atoi((*it_bool_reserved7++).c_str()) ) { pBaseVar->m_bReserved7 = false; } else { pBaseVar->m_bReserved7 = true; } //布尔型预留8 if( 0 == atoi((*it_bool_reserved8++).c_str()) ) { pBaseVar->m_bReserved8 = false; } else { pBaseVar->m_bReserved8 = true; } //布尔型预留9 if( 0 == atoi((*it_bool_reserved9++).c_str()) ) { pBaseVar->m_bReserved9 = false; } else { pBaseVar->m_bReserved9 = true; } //布尔型预留10 if( 0 == atoi((*it_bool_reserved10++).c_str()) ) { pBaseVar->m_bReserved10 = false; } else { pBaseVar->m_bReserved10 = true; } pBaseVar->m_dbData = pBaseVar->m_nReserved1; pBaseVar->m_nStatus = -1; pBaseVar->m_strContent = ""; pBaseVar->m_nAlarmNumber = 0; pBaseVar->m_nStatusDescCount = CDBInterface::GetInstancePtr()->GetAlarmStatusDescList( (char *)(LPCTSTR)pDev->m_strUid, pBaseVar->m_nVarID, pBaseVar->m_listStatusID, pBaseVar->m_listStatusDesc ); list::iterator it_desc, it_id; if( pBaseVar->m_listStatusDesc.size() > 0 && pBaseVar->m_listStatusID.size() > 0 ) { for( it_desc = pBaseVar->m_listStatusDesc.begin(), it_id = pBaseVar->m_listStatusID.begin(); it_desc != pBaseVar->m_listStatusDesc.end(), it_id != pBaseVar->m_listStatusID.end(); ) { CString strStatusID = (*it_id++).c_str(); CString strStatusDesc = (*it_desc++).c_str(); //LOG4C((LOG_NOTICE, "var desc = %s, StatusID = %d statusdesc = %s",pBaseVar->m_strDesc,atoi(strStatusID), strStatusDesc)); } } //LOG4C((LOG_NOTICE, "var desc = %s, value = %d", pBaseVar->m_strDesc, (int)pBaseVar->m_dbData)); pBaseVar->m_bExistDatePlan = CDBInterface::GetInstancePtr()->IsExistDatePlan((char *)(LPCTSTR)pDev->m_strUid, pBaseVar->m_nVarID); if( pBaseVar->m_nVarItemID > 0 ) { char szStartBit[MAX_ID] = {0}; char szEndBit[MAX_ID] = {0}; GetVarItemInfo((char *)(LPCTSTR)pDev->m_strUid, pBaseVar->m_nVarItemID, szStartBit, szEndBit); pBaseVar->m_nStartBit = atoi(szStartBit); pBaseVar->m_nEndBit = atoi(szEndBit); } CString strTime; CTime tm; tm = CTime::GetCurrentTime(); strTime = tm.Format("%Y-%m-%d %H:%M:%S"); CHAR szID[MAX_ID] = {0}; int nRet = CDBInterface::GetInstancePtr()->GetSummaryInfo((char *)(LPCTSTR)pDev->m_strUid, (char *)(LPCTSTR)pBaseVar->m_strName, szID); //LOG4C((LOG_NOTICE, "GetSummaryInfo Return %d", nRet)); if( nRet == 0 ) { if( TRUE == pBaseVar->m_bRealTimeflag ) { CDBInterface::GetInstancePtr()->InsertSummaryRecord( (char *)(LPCTSTR)pDev->m_strDeviceName, // 设备名称 (char *)(LPCTSTR)strTime, // 发生时间 "", // 备注 (char *)(LPCTSTR)pBaseVar->m_strDesc, // 变量描述 pBaseVar->m_dbData, // 变量值 (char *)(LPCTSTR)pDev->m_strUid, // 设备Uid (char *)(LPCTSTR)pBaseVar->m_strName); // 变量名称 } } if( pDev ) { pDev->m_Vars.Add(pBaseVar); } } } for( it_var_id = list_var_id.begin(), it_set_value = list_set_value.begin(), it_var_name = list_var_name.begin() ,it_uid = list_uid.begin(), it_upper_limit = list_upper_limit.begin() ,it_lower_limit = list_lower_limit.begin(), it_normal_state = list_normal_state.begin() ,it_identify_time = list_identify_time.begin(),it_redetect_time = list_redetect_time.begin() ,it_normal_is_notice = list_normal_is_notice.begin(), it_warn_level = list_warn_level.begin() ,it_snmp_oid = list_snmp_oid.begin(), it_fields = list_fields.begin(), it_description = list_description.begin() ,it_max_values = list_max_values.begin(), it_min_values = list_min_values.begin() ,it_max_convtrate = list_max_convtrate.begin(), it_min_convtrate = list_min_convtrate.begin() ,it_is_save = list_is_save.begin(), it_collect_freq = list_collect_freq.begin(), it_var_type_id = list_var_type_id.begin() ,it_readonly = list_readonly.begin(), it_is_dde = list_is_dde.begin(), it_address = list_address.begin() ,it_unit = list_unit.begin(), it_reccurve = list_reccurve.begin(), it_register_num = list_register_num.begin() ,it_child_id = list_child_id.begin(), it_var_item_id = list_var_item_id.begin() ,it_rearm = list_rearm.begin(), it_offsets = list_offsets.begin(), it_funcid = list_funcid.begin() ,it_data_len = list_data_len.begin(), it_coefficient = list_coefficient.begin(), it_realtimeflag = list_realtimeflag.begin() ,it_rs232_cmd = list_rs232_cmd.begin(), it_rs232_type = list_rs232_type.begin(), it_rs232_index = list_rs232_index.begin() ,it_str_reserved1 = list_str_reserved1.begin(), it_str_reserved2 = list_str_reserved2.begin() ,it_str_reserved3 = list_str_reserved3.begin(), it_str_reserved4 = list_str_reserved4.begin() ,it_str_reserved5 = list_str_reserved5.begin(), it_str_reserved6 = list_str_reserved6.begin() ,it_str_reserved7 = list_str_reserved7.begin(), it_str_reserved8 = list_str_reserved8.begin() ,it_str_reserved9 = list_str_reserved9.begin(), it_str_reserved10 = list_str_reserved10.begin() ,it_int_reserved1 = list_int_reserved1.begin(), it_int_reserved2 = list_int_reserved2.begin() ,it_int_reserved3 = list_int_reserved3.begin(), it_int_reserved4 = list_int_reserved4.begin() ,it_int_reserved5 = list_int_reserved5.begin(), it_int_reserved6 = list_int_reserved6.begin() ,it_int_reserved7 = list_int_reserved7.begin(), it_int_reserved8 = list_int_reserved8.begin() ,it_int_reserved9 = list_int_reserved9.begin(), it_int_reserved10 = list_int_reserved10.begin() ,it_bool_reserved1 = list_bool_reserved1.begin(), it_bool_reserved2 = list_bool_reserved2.begin() ,it_bool_reserved3 = list_bool_reserved3.begin(), it_bool_reserved4 = list_bool_reserved4.begin() ,it_bool_reserved5 = list_bool_reserved5.begin(), it_bool_reserved6 = list_bool_reserved6.begin() ,it_bool_reserved7 = list_bool_reserved7.begin(), it_bool_reserved8 = list_bool_reserved8.begin() ,it_bool_reserved9 = list_bool_reserved9.begin(), it_bool_reserved10 = list_bool_reserved10.begin(); it_var_id != list_var_id.end(), it_set_value != list_set_value.end(), it_var_name != list_var_name.end() ,it_uid != list_uid.end(), it_upper_limit != list_upper_limit.end() ,it_lower_limit != list_lower_limit.end(), it_normal_state != list_normal_state.end() ,it_identify_time != list_identify_time.end(),it_redetect_time != list_redetect_time.end() ,it_normal_is_notice != list_normal_is_notice.end(), it_warn_level != list_warn_level.end() ,it_snmp_oid != list_snmp_oid.end(), it_fields != list_fields.end(), it_description != list_description.end() ,it_max_values != list_max_values.end(), it_min_values != list_min_values.end() ,it_max_convtrate != list_max_convtrate.end(), it_min_convtrate != list_min_convtrate.end() ,it_is_save != list_is_save.end(), it_collect_freq != list_collect_freq.end(), it_var_type_id != list_var_type_id.end() ,it_readonly != list_readonly.end(), it_is_dde != list_is_dde.end(), it_address != list_address.end() ,it_unit != list_unit.end(), it_reccurve != list_reccurve.end(), it_register_num != list_register_num.end() ,it_child_id != list_child_id.end(), it_var_item_id != list_var_item_id.end() ,it_rearm != list_rearm.end(), it_offsets != list_offsets.end(), it_funcid != list_funcid.end() ,it_data_len != list_data_len.end(), it_coefficient != list_coefficient.end(), it_realtimeflag != list_realtimeflag.end() ,it_rs232_cmd != list_rs232_cmd.end(), it_rs232_type != list_rs232_type.end(), it_rs232_index != list_rs232_index.end() ,it_str_reserved1 != list_str_reserved1.end(), it_str_reserved2 != list_str_reserved2.end() ,it_str_reserved3 != list_str_reserved3.end(), it_str_reserved4 != list_str_reserved4.end() ,it_str_reserved5 != list_str_reserved5.end(), it_str_reserved6 != list_str_reserved6.end() ,it_str_reserved7 != list_str_reserved7.end(), it_str_reserved8 != list_str_reserved8.end() ,it_str_reserved9 != list_str_reserved9.end(), it_str_reserved10 != list_str_reserved10.end() ,it_int_reserved1 != list_int_reserved1.end(), it_int_reserved2 != list_int_reserved2.end() ,it_int_reserved3 != list_int_reserved3.end(), it_int_reserved4 != list_int_reserved4.end() ,it_int_reserved5 != list_int_reserved5.end(), it_int_reserved6 != list_int_reserved6.end() ,it_int_reserved7 != list_int_reserved7.end(), it_int_reserved8 != list_int_reserved8.end() ,it_int_reserved9 != list_int_reserved9.end(), it_int_reserved10 != list_int_reserved10.end() ,it_bool_reserved1 != list_bool_reserved1.end(), it_bool_reserved2 != list_bool_reserved2.end() ,it_bool_reserved3 != list_bool_reserved3.end(), it_bool_reserved4 != list_bool_reserved4.end() ,it_bool_reserved5 != list_bool_reserved5.end(), it_bool_reserved6 != list_bool_reserved6.end() ,it_bool_reserved7 != list_bool_reserved7.end(), it_bool_reserved8 != list_bool_reserved8.end() ,it_bool_reserved9 != list_bool_reserved9.end(), it_bool_reserved10 != list_bool_reserved10.end(); ) { list_var_id.erase(it_var_id++); list_set_value.erase(it_set_value++); list_var_name.erase(it_var_name++); list_uid.erase(it_uid++); list_upper_limit.erase(it_upper_limit++); list_lower_limit.erase(it_lower_limit++); list_normal_state.erase(it_normal_state++); list_identify_time.erase(it_identify_time++); list_redetect_time.erase(it_redetect_time++); list_normal_is_notice.erase(it_normal_is_notice++); list_warn_level.erase(it_warn_level++); list_snmp_oid.erase(it_snmp_oid++); list_fields.erase(it_fields++); list_description.erase(it_description++); list_max_values.erase(it_max_values++); list_min_values.erase(it_min_values++); list_max_convtrate.erase(it_max_convtrate++); list_min_convtrate.erase(it_min_convtrate++); list_is_save.erase(it_is_save++); list_collect_freq.erase(it_collect_freq++); list_var_type_id.erase(it_var_type_id++); list_readonly.erase(it_readonly++); list_is_dde.erase(it_is_dde++); list_address.erase(it_address++); list_unit.erase(it_unit++); list_reccurve.erase(it_reccurve++); list_register_num.erase(it_register_num++); list_child_id.erase(it_child_id++); list_var_item_id.erase(it_var_item_id++); list_rearm.erase(it_rearm++); list_offsets.erase(it_offsets++); list_funcid.erase(it_funcid++); list_data_len.erase(it_data_len++); list_coefficient.erase(it_coefficient++); list_realtimeflag.erase(it_realtimeflag++); list_rs232_cmd.erase(it_rs232_cmd++); list_rs232_type.erase(it_rs232_type++); list_rs232_index.erase(it_rs232_index++); list_str_reserved1.erase(it_str_reserved1++); list_str_reserved2.erase(it_str_reserved2++); list_str_reserved3.erase(it_str_reserved3++); list_str_reserved4.erase(it_str_reserved4++); list_str_reserved5.erase(it_str_reserved5++); list_str_reserved6.erase(it_str_reserved6++); list_str_reserved7.erase(it_str_reserved7++); list_str_reserved8.erase(it_str_reserved8++); list_str_reserved9.erase(it_str_reserved9++); list_str_reserved10.erase(it_str_reserved10++); list_int_reserved1.erase(it_int_reserved1++); list_int_reserved2.erase(it_int_reserved2++); list_int_reserved3.erase(it_int_reserved3++); list_int_reserved4.erase(it_int_reserved4++); list_int_reserved5.erase(it_int_reserved5++); list_int_reserved6.erase(it_int_reserved6++); list_int_reserved7.erase(it_int_reserved7++); list_int_reserved8.erase(it_int_reserved8++); list_int_reserved9.erase(it_int_reserved9++); list_int_reserved10.erase(it_int_reserved10++); list_bool_reserved1.erase(it_bool_reserved1++); list_bool_reserved2.erase(it_bool_reserved2++); list_bool_reserved3.erase(it_bool_reserved3++); list_bool_reserved4.erase(it_bool_reserved4++); list_bool_reserved5.erase(it_bool_reserved5++); list_bool_reserved6.erase(it_bool_reserved6++); list_bool_reserved7.erase(it_bool_reserved7++); list_bool_reserved8.erase(it_bool_reserved8++); list_bool_reserved9.erase(it_bool_reserved9++); list_bool_reserved10.erase(it_bool_reserved10++); } return nRet; } //获取变量 INT CDBInterface::EditVarInfo(int nDeviceIndex, int nVarIndex, CHAR *pUid, int nVarID) { CBaseVar *pBaseVar = g_pDevicesManager->m_Devices[nDeviceIndex]->m_Vars[nVarIndex]; //LOG4C((LOG_NOTICE, "EditVarInfo DeviceIndex = %d, VarIndex = %d", nDeviceIndex, nVarIndex)); if( NULL == pBaseVar ) { LOG4C((LOG_NOTICE, "EditVarInfo pBaseVar is NULL")); } CHAR strSQLText[MAX_SQL_LENGTH * 2] = {0}; list list_var_id, list_set_value, list_var_name, list_uid, list_upper_limit; list list_lower_limit, list_normal_state, list_identify_time, list_redetect_time; list list_normal_is_notice, list_warn_level, list_snmp_oid, list_fields, list_description; list list_max_values, list_min_values, list_max_convtrate, list_min_convtrate, list_is_save; list list_collect_freq, list_var_type_id, list_readonly, list_is_dde, list_address, list_unit; list list_reccurve, list_register_num, list_child_id, list_var_item_id, list_rearm, list_offsets; list list_funcid, list_data_len, list_coefficient, list_realtimeflag; list list_rs232_cmd, list_rs232_type, list_rs232_index; list list_str_reserved1, list_str_reserved2, list_str_reserved3, list_str_reserved4, list_str_reserved5; list list_str_reserved6, list_str_reserved7, list_str_reserved8, list_str_reserved9, list_str_reserved10; list list_int_reserved1, list_int_reserved2, list_int_reserved3, list_int_reserved4, list_int_reserved5; list list_int_reserved6, list_int_reserved7, list_int_reserved8, list_int_reserved9, list_int_reserved10; list list_bool_reserved1, list_bool_reserved2, list_bool_reserved3, list_bool_reserved4, list_bool_reserved5; list list_bool_reserved6, list_bool_reserved7, list_bool_reserved8, list_bool_reserved9, list_bool_reserved10; list::iterator it_var_id, it_set_value, it_var_name, it_uid, it_upper_limit; list::iterator it_lower_limit, it_normal_state, it_identify_time, it_redetect_time; list::iterator it_normal_is_notice, it_warn_level, it_snmp_oid, it_fields, it_description; list::iterator it_max_values, it_min_values, it_max_convtrate, it_min_convtrate, it_is_save; list::iterator it_collect_freq, it_var_type_id, it_readonly, it_is_dde, it_address, it_unit; list::iterator it_reccurve, it_register_num, it_child_id, it_var_item_id, it_rearm, it_offsets; list::iterator it_funcid, it_data_len, it_coefficient, it_realtimeflag; list::iterator it_rs232_cmd, it_rs232_type, it_rs232_index; list::iterator it_str_reserved1, it_str_reserved2, it_str_reserved3, it_str_reserved4, it_str_reserved5; list::iterator it_str_reserved6, it_str_reserved7, it_str_reserved8, it_str_reserved9, it_str_reserved10; list::iterator it_int_reserved1, it_int_reserved2, it_int_reserved3, it_int_reserved4, it_int_reserved5; list::iterator it_int_reserved6, it_int_reserved7, it_int_reserved8, it_int_reserved9, it_int_reserved10; list::iterator it_bool_reserved1, it_bool_reserved2, it_bool_reserved3, it_bool_reserved4, it_bool_reserved5; list::iterator it_bool_reserved6, it_bool_reserved7, it_bool_reserved8, it_bool_reserved9, it_bool_reserved10; if (!_stricmp(m_chDBType, "SQL SERVER")) { sprintf(strSQLText, "select top 1 id, setvalue, varname, uid, upperlimit, lowerlimit, normalstate, " \ "identifytime, redetecttime, normalisnotice, warnlevel, snmpoid, fields, description, " \ "maxvalues, minvalues, maxconvtrate, minconvtrate, issave, collectfrequence, " \ "vartypeid, readonly, isdde, address, unit, reccurve, registernum, childid, " \ "var_item_id, rearm, [offsets], funcid, datalen, coefficient, realtimeflag, " \ "rs232cmd, rs232type, rs232index, " \ "strreserved1, strreserved2, strreserved3, strreserved4, strreserved5, " \ "strreserved6, strreserved7, strreserved8, strreserved9, strreserved10, " \ "intreserved1, intreserved2, intreserved3, intreserved4, intreserved5, " \ "intreserved6, intreserved7, intreserved8, intreserved9, intreserved10, " \ "boolreserved1, boolreserved2, boolreserved3, boolreserved4, boolreserved5, " \ "boolreserved6, boolreserved7, boolreserved8, boolreserved9, boolreserved10 " \ "from t_dev_variant where uid = \'%s\' and id = %d", pUid, nVarID); } else if (!_stricmp(m_chDBType, "ACCESS97")) { sprintf(strSQLText, "select top 1 id, setvalue, varname, uid, upperlimit, lowerlimit, normalstate, " \ "identifytime, redetecttime, normalisnotice, warnlevel, snmpoid, fields, description, " \ "maxvalues, minvalues, maxconvtrate, minconvtrate, issave, collectfrequence, " \ "vartypeid, readonly, isdde, address, unit, reccurve, registernum, childid, " \ "var_item_id, rearm, [offsets], funcid, datalen, coefficient, realtimeflag, " \ "rs232cmd, rs232type, rs232index, " \ "strreserved1, strreserved2, strreserved3, strreserved4, strreserved5, " \ "strreserved6, strreserved7, strreserved8, strreserved9, strreserved10, " \ "intreserved1, intreserved2, intreserved3, intreserved4, intreserved5, " \ "intreserved6, intreserved7, intreserved8, intreserved9, intreserved10, " \ "boolreserved1, boolreserved2, boolreserved3, boolreserved4, boolreserved5, " \ "boolreserved6, boolreserved7, boolreserved8, boolreserved9, boolreserved10 " \ "from t_dev_variant where uid = \'%s\' and id = %d", pUid, nVarID); } else if (!_stricmp(m_chDBType, "ACCESS2000")) { sprintf(strSQLText, "select top 1 id, setvalue, varname, uid, upperlimit, lowerlimit, normalstate, " \ "identifytime, redetecttime, normalisnotice, warnlevel, snmpoid, fields, description, " \ "maxvalues, minvalues, maxconvtrate, minconvtrate, issave, collectfrequence, " \ "vartypeid, readonly, isdde, address, unit, reccurve, registernum, childid, " \ "var_item_id, rearm, [offsets], funcid, datalen, coefficient, realtimeflag, " \ "rs232cmd, rs232type, rs232index, " \ "strreserved1, strreserved2, strreserved3, strreserved4, strreserved5, " \ "strreserved6, strreserved7, strreserved8, strreserved9, strreserved10, " \ "intreserved1, intreserved2, intreserved3, intreserved4, intreserved5, " \ "intreserved6, intreserved7, intreserved8, intreserved9, intreserved10, " \ "boolreserved1, boolreserved2, boolreserved3, boolreserved4, boolreserved5, " \ "boolreserved6, boolreserved7, boolreserved8, boolreserved9, boolreserved10 " \ "from t_dev_variant where uid = \'%s\' and id = %d", pUid, nVarID); } else if(!_stricmp(m_chDBType, "PGSQL")) { sprintf(strSQLText, "select id, setvalue, varname, uid, upperlimit, lowerlimit, normalstate, " \ "identifytime, redetecttime, normalisnotice, warnlevel, snmpoid, fields, description, " \ "maxvalues, minvalues, maxconvtrate, minconvtrate, issave, collectfrequence, " \ "vartypeid, readonly, isdde, address, unit, reccurve, registernum, childid, " \ "var_item_id, rearm, offsets, funcid, datalen, coefficient, realtimeflag, " \ "rs232cmd, rs232type, rs232index, " \ "strreserved1, strreserved2, strreserved3, strreserved4, strreserved5, " \ "strreserved6, strreserved7, strreserved8, strreserved9, strreserved10, " \ "intreserved1, intreserved2, intreserved3, intreserved4, intreserved5, " \ "intreserved6, intreserved7, intreserved8, intreserved9, intreserved10, " \ "boolreserved1, boolreserved2, boolreserved3, boolreserved4, boolreserved5, " \ "boolreserved6, boolreserved7, boolreserved8, boolreserved9, boolreserved10 " \ "from t_dev_variant where uid = \'%s\' and id = %d limit 1", pUid, nVarID); } //LOG4C((LOG_NOTICE, "%s", strSQLText)); int nRet = CDBConnection::GetInstancePtr()->GetFieldValueList68(strSQLText ,list_var_id, list_set_value, list_var_name, list_uid, list_upper_limit ,list_lower_limit, list_normal_state, list_identify_time, list_redetect_time ,list_normal_is_notice, list_warn_level, list_snmp_oid, list_fields, list_description ,list_max_values, list_min_values, list_max_convtrate, list_min_convtrate, list_is_save ,list_collect_freq, list_var_type_id, list_readonly, list_is_dde, list_address, list_unit ,list_reccurve, list_register_num, list_child_id, list_var_item_id, list_rearm, list_offsets ,list_funcid, list_data_len, list_coefficient, list_realtimeflag ,list_rs232_cmd, list_rs232_type, list_rs232_index ,list_str_reserved1, list_str_reserved2, list_str_reserved3, list_str_reserved4, list_str_reserved5 ,list_str_reserved6, list_str_reserved7, list_str_reserved8, list_str_reserved9, list_str_reserved10 ,list_int_reserved1, list_int_reserved2, list_int_reserved3, list_int_reserved4, list_int_reserved5 ,list_int_reserved6, list_int_reserved7, list_int_reserved8, list_int_reserved9, list_int_reserved10 ,list_bool_reserved1, list_bool_reserved2, list_bool_reserved3, list_bool_reserved4, list_bool_reserved5 ,list_bool_reserved6, list_bool_reserved7, list_bool_reserved8, list_bool_reserved9, list_bool_reserved10); if( 0 == list_var_id.size() || 0 == list_set_value.size() || 0 == list_var_name.size() || 0 == list_uid.size() || 0 == list_upper_limit.size() || 0 == list_lower_limit.size() || 0 == list_normal_state.size() || 0 == list_identify_time.size() || 0 == list_redetect_time.size() || 0 == list_normal_is_notice.size() || 0 == list_warn_level.size() || 0 == list_snmp_oid.size() || 0 == list_fields.size() || 0 == list_description.size() || 0 == list_max_values.size() || 0 == list_min_values.size() || 0 == list_max_convtrate.size() || 0 == list_min_convtrate.size() || 0 == list_is_save.size() || 0 == list_collect_freq.size() || 0 == list_var_type_id.size() || 0 == list_readonly.size() || 0 == list_is_dde.size() || 0 == list_address.size() || 0 == list_unit.size() || 0 == list_reccurve.size() || 0 == list_register_num.size() || 0 == list_child_id.size() || 0 == list_var_item_id.size() || 0 == list_rearm.size() || 0 == list_offsets.size() || 0 == list_funcid.size() || 0 == list_data_len.size() || 0 == list_coefficient.size() || 0 == list_realtimeflag.size() || 0 == list_rs232_cmd.size() || 0 == list_rs232_type.size() || 0 == list_rs232_index.size() || 0 == list_str_reserved1.size() || 0 == list_str_reserved2.size() || 0 == list_str_reserved3.size() || 0 == list_str_reserved4.size() || 0 == list_str_reserved5.size() || 0 == list_str_reserved6.size() || 0 == list_str_reserved7.size() || 0 == list_str_reserved8.size() || 0 == list_str_reserved9.size() || 0 == list_str_reserved10.size() || 0 == list_int_reserved1.size() || 0 == list_int_reserved2.size() || 0 == list_int_reserved3.size() || 0 == list_int_reserved4.size() || 0 == list_int_reserved5.size() || 0 == list_int_reserved6.size() || 0 == list_int_reserved7.size() || 0 == list_int_reserved8.size() || 0 == list_int_reserved9.size() || 0 == list_int_reserved10.size() || 0 == list_bool_reserved1.size() || 0 == list_bool_reserved2.size() || 0 == list_bool_reserved3.size() || 0 == list_bool_reserved4.size() || 0 == list_bool_reserved5.size() || 0 == list_bool_reserved6.size() || 0 == list_bool_reserved7.size() || 0 == list_bool_reserved8.size() || 0 == list_bool_reserved9.size() || 0 == list_bool_reserved10.size() ) { return 0; } if( nRet != -1 ) { for( it_var_id = list_var_id.begin(), it_set_value = list_set_value.begin(), it_var_name = list_var_name.begin() ,it_uid = list_uid.begin(), it_upper_limit = list_upper_limit.begin() ,it_lower_limit = list_lower_limit.begin(), it_normal_state = list_normal_state.begin() ,it_identify_time = list_identify_time.begin(),it_redetect_time = list_redetect_time.begin() ,it_normal_is_notice = list_normal_is_notice.begin(), it_warn_level = list_warn_level.begin() ,it_snmp_oid = list_snmp_oid.begin(), it_fields = list_fields.begin(), it_description = list_description.begin() ,it_max_values = list_max_values.begin(), it_min_values = list_min_values.begin() ,it_max_convtrate = list_max_convtrate.begin(), it_min_convtrate = list_min_convtrate.begin() ,it_is_save = list_is_save.begin(), it_collect_freq = list_collect_freq.begin(), it_var_type_id = list_var_type_id.begin() ,it_readonly = list_readonly.begin(), it_is_dde = list_is_dde.begin(), it_address = list_address.begin() ,it_unit = list_unit.begin(), it_reccurve = list_reccurve.begin(), it_register_num = list_register_num.begin() ,it_child_id = list_child_id.begin(), it_var_item_id = list_var_item_id.begin() ,it_rearm = list_rearm.begin(), it_offsets = list_offsets.begin(), it_funcid = list_funcid.begin() ,it_data_len = list_data_len.begin(), it_coefficient = list_coefficient.begin(), it_realtimeflag = list_realtimeflag.begin() ,it_rs232_cmd = list_rs232_cmd.begin(), it_rs232_type = list_rs232_type.begin(), it_rs232_index = list_rs232_index.begin() ,it_str_reserved1 = list_str_reserved1.begin(), it_str_reserved2 = list_str_reserved2.begin() ,it_str_reserved3 = list_str_reserved3.begin(), it_str_reserved4 = list_str_reserved4.begin() ,it_str_reserved5 = list_str_reserved5.begin(), it_str_reserved6 = list_str_reserved6.begin() ,it_str_reserved7 = list_str_reserved7.begin(), it_str_reserved8 = list_str_reserved8.begin() ,it_str_reserved9 = list_str_reserved9.begin(), it_str_reserved10 = list_str_reserved10.begin() ,it_int_reserved1 = list_int_reserved1.begin(), it_int_reserved2 = list_int_reserved2.begin() ,it_int_reserved3 = list_int_reserved3.begin(), it_int_reserved4 = list_int_reserved4.begin() ,it_int_reserved5 = list_int_reserved5.begin(), it_int_reserved6 = list_int_reserved6.begin() ,it_int_reserved7 = list_int_reserved7.begin(), it_int_reserved8 = list_int_reserved8.begin() ,it_int_reserved9 = list_int_reserved9.begin(), it_int_reserved10 = list_int_reserved10.begin() ,it_bool_reserved1 = list_bool_reserved1.begin(), it_bool_reserved2 = list_bool_reserved2.begin() ,it_bool_reserved3 = list_bool_reserved3.begin(), it_bool_reserved4 = list_bool_reserved4.begin() ,it_bool_reserved5 = list_bool_reserved5.begin(), it_bool_reserved6 = list_bool_reserved6.begin() ,it_bool_reserved7 = list_bool_reserved7.begin(), it_bool_reserved8 = list_bool_reserved8.begin() ,it_bool_reserved9 = list_bool_reserved9.begin(), it_bool_reserved10 = list_bool_reserved10.begin(); it_var_id != list_var_id.end(), it_set_value != list_set_value.end(), it_var_name != list_var_name.end() ,it_uid != list_uid.end(), it_upper_limit != list_upper_limit.end() ,it_lower_limit != list_lower_limit.end(), it_normal_state != list_normal_state.end() ,it_identify_time != list_identify_time.end(),it_redetect_time != list_redetect_time.end() ,it_normal_is_notice != list_normal_is_notice.end(), it_warn_level != list_warn_level.end() ,it_snmp_oid != list_snmp_oid.end(), it_fields != list_fields.end(), it_description != list_description.end() ,it_max_values != list_max_values.end(), it_min_values != list_min_values.end() ,it_max_convtrate != list_max_convtrate.end(), it_min_convtrate != list_min_convtrate.end() ,it_is_save != list_is_save.end(), it_collect_freq != list_collect_freq.end(), it_var_type_id != list_var_type_id.end() ,it_readonly != list_readonly.end(), it_is_dde != list_is_dde.end(), it_address != list_address.end() ,it_unit != list_unit.end(), it_reccurve != list_reccurve.end(), it_register_num != list_register_num.end() ,it_child_id != list_child_id.end(), it_var_item_id != list_var_item_id.end() ,it_rearm != list_rearm.end(), it_offsets != list_offsets.end(), it_funcid != list_funcid.end() ,it_data_len != list_data_len.end(), it_coefficient != list_coefficient.end(), it_realtimeflag != list_realtimeflag.end() ,it_rs232_cmd != list_rs232_cmd.end(), it_rs232_type != list_rs232_type.end(), it_rs232_index != list_rs232_index.end() ,it_str_reserved1 != list_str_reserved1.end(), it_str_reserved2 != list_str_reserved2.end() ,it_str_reserved3 != list_str_reserved3.end(), it_str_reserved4 != list_str_reserved4.end() ,it_str_reserved5 != list_str_reserved5.end(), it_str_reserved6 != list_str_reserved6.end() ,it_str_reserved7 != list_str_reserved7.end(), it_str_reserved8 != list_str_reserved8.end() ,it_str_reserved9 != list_str_reserved9.end(), it_str_reserved10 != list_str_reserved10.end() ,it_int_reserved1 != list_int_reserved1.end(), it_int_reserved2 != list_int_reserved2.end() ,it_int_reserved3 != list_int_reserved3.end(), it_int_reserved4 != list_int_reserved4.end() ,it_int_reserved5 != list_int_reserved5.end(), it_int_reserved6 != list_int_reserved6.end() ,it_int_reserved7 != list_int_reserved7.end(), it_int_reserved8 != list_int_reserved8.end() ,it_int_reserved9 != list_int_reserved9.end(), it_int_reserved10 != list_int_reserved10.end() ,it_bool_reserved1 != list_bool_reserved1.end(), it_bool_reserved2 != list_bool_reserved2.end() ,it_bool_reserved3 != list_bool_reserved3.end(), it_bool_reserved4 != list_bool_reserved4.end() ,it_bool_reserved5 != list_bool_reserved5.end(), it_bool_reserved6 != list_bool_reserved6.end() ,it_bool_reserved7 != list_bool_reserved7.end(), it_bool_reserved8 != list_bool_reserved8.end() ,it_bool_reserved9 != list_bool_reserved9.end(), it_bool_reserved10 != list_bool_reserved10.end(); ) { int nVarID; CString strUid; nVarID = atoi((*it_var_id++).c_str()); strUid = (*it_uid++).c_str(); // 变量ID pBaseVar->m_nVarID = nVarID; // 设定值 pBaseVar->m_strSetValue = (*it_set_value++).c_str(); // 变量名称 pBaseVar->m_strName = (*it_var_name++).c_str(); // 变量Uid pBaseVar->m_strVarUID = strUid; int nUpperLimit = atoi((*it_upper_limit++).c_str()); // 上限 pBaseVar->m_nUpperLimit = nUpperLimit; //LOG4C((LOG_NOTICE, "EditVarInfo pBaseVar->m_nUpperLimit = %d, value = %d", pBaseVar->m_nUpperLimit, nUpperLimit)); // 下限 pBaseVar->m_nLowerLimit = atoi((*it_lower_limit++).c_str()); // 正常状态 pBaseVar->m_nNormalState = atoi((*it_normal_state++).c_str()); // 辨识时间 pBaseVar->m_nIdentifyTime = atoi((*it_identify_time++).c_str()); // 重新检测时间 pBaseVar->m_nReDetectTime = atoi((*it_redetect_time++).c_str()); // 恢复正常是否触发远程报警 CString strNormalIsNotice = (*it_normal_is_notice++).c_str(); if( 0 == atoi(strNormalIsNotice) ) { pBaseVar->m_bNormalIsNotice = FALSE; } else { pBaseVar->m_bNormalIsNotice = TRUE; } // 报警级别 pBaseVar->m_nWaringLevel = atoi((*it_warn_level++).c_str()); // Snmp对象OID pBaseVar->m_strSnmpoi = (*it_snmp_oid++).c_str(); // Snmp对象域 pBaseVar->m_strFields = (*it_fields++).c_str(); // 变量描述 pBaseVar->m_strDesc = (*it_description++).c_str(); // 最大值 pBaseVar->m_nMaxValues = atoi((*it_max_values++).c_str()); // 最小值 pBaseVar->m_nMinValues = atoi((*it_min_values++).c_str()); // 最大比例 pBaseVar->m_nMaxConvtRate = atoi((*it_max_convtrate++).c_str()); // 最小比例 pBaseVar->m_nMinConvtRate = atoi((*it_min_convtrate++).c_str()); // 是否保存数值 CString strIsSave = (*it_is_save++).c_str(); if( 0 == atoi(strIsSave) ) { pBaseVar->m_bIsSave = FALSE; } else { pBaseVar->m_bIsSave = TRUE; } // 采集频率 pBaseVar->m_nCollectFreq = atoi((*it_collect_freq++).c_str()); // 变量类型ID pBaseVar->m_nVarTypeID = atoi((*it_var_type_id++).c_str()); // 读写权限 CString strReadOnly = (*it_readonly++).c_str(); if( 0 == atoi(strReadOnly) ) { pBaseVar->m_bReadOnly = FALSE; } else { pBaseVar->m_bReadOnly = TRUE; } // 是否DDE CString strIsDDE = (*it_is_dde++).c_str(); if( 0 == atoi(strIsDDE) ) { pBaseVar->m_bIsDDE = FALSE; } else { pBaseVar->m_bIsDDE = TRUE; } // 寄存器起始地址 pBaseVar->m_nRegStartAddr = atoi((*it_address++).c_str()); // 单位 pBaseVar->m_strUnit = (*it_unit++).c_str(); // 是否记录实时曲线 CString strRecCurve = (*it_reccurve++).c_str(); if( 0 == atoi(strRecCurve) ) { pBaseVar->m_bRecCurve = FALSE; } else { pBaseVar->m_bRecCurve = TRUE; } // 寄存器个数 pBaseVar->m_iRegisterNum = atoi((*it_register_num++).c_str()); // 变量子ID pBaseVar->m_iChildID = atoi((*it_child_id++).c_str()); // t_dev_varint_item表的ID pBaseVar->m_nVarItemID = atoi((*it_var_item_id++).c_str()); // 校正值 pBaseVar->m_nRearm = atoi((*it_rearm++).c_str()); // 偏移值 pBaseVar->m_nOffset = atoi((*it_offsets++).c_str()); // 功能码ID pBaseVar->m_iFuncID = atoi((*it_funcid++).c_str()); // 数据长度 pBaseVar->m_iDataLen = atoi((*it_data_len++).c_str()); // 系数 pBaseVar->m_dbCoefficient = atof((*it_coefficient++).c_str()); // 是否实时采集 CString strRealTimeFlag = (*it_realtimeflag++).c_str(); if( 0 == atoi(strRealTimeFlag) ) { pBaseVar->m_bRealTimeflag = FALSE; } else { pBaseVar->m_bRealTimeflag = TRUE; } // RS232命令 pBaseVar->m_strRs232cmd = (*it_rs232_cmd++).c_str(); // RS232类型 pBaseVar->m_strRs232type = (*it_rs232_type++).c_str(); // RS232索引 pBaseVar->m_strRs232Index = (*it_rs232_index++).c_str(); // 字符串预留1 pBaseVar->m_strReserved1 = (*it_str_reserved1++).c_str(); // 字符串预留2 pBaseVar->m_strReserved2 = (*it_str_reserved2++).c_str(); // 字符串预留3 pBaseVar->m_strReserved3 = (*it_str_reserved3++).c_str(); // 字符串预留4 pBaseVar->m_strReserved4 = (*it_str_reserved4++).c_str(); // 字符串预留5 pBaseVar->m_strReserved5 = (*it_str_reserved5++).c_str(); // 字符串预留6 pBaseVar->m_strReserved6 = (*it_str_reserved6++).c_str(); // 字符串预留7 pBaseVar->m_strReserved7 = (*it_str_reserved7++).c_str(); // 字符串预留8 pBaseVar->m_strReserved8 = (*it_str_reserved8++).c_str(); // 字符串预留9 pBaseVar->m_strReserved9 = (*it_str_reserved9++).c_str(); // 字符串预留10 pBaseVar->m_strReserved10 = (*it_str_reserved10++).c_str(); // 整形预留1 pBaseVar->m_nReserved1 = atoi((*it_int_reserved1++).c_str()); // 整形预留2 pBaseVar->m_nReserved2 = atoi((*it_int_reserved2++).c_str()); // 整形预留3 pBaseVar->m_nReserved3 = atoi((*it_int_reserved3++).c_str()); // 整形预留4 pBaseVar->m_nReserved4 = atoi((*it_int_reserved4++).c_str()); // 整形预留5 pBaseVar->m_nReserved5 = atoi((*it_int_reserved5++).c_str()); // 整形预留6 pBaseVar->m_nReserved6 = atoi((*it_int_reserved6++).c_str()); // 整形预留7 pBaseVar->m_nReserved7 = atoi((*it_int_reserved7++).c_str()); // 整形预留8 pBaseVar->m_nReserved8 = atoi((*it_int_reserved8++).c_str()); // 整形预留9 pBaseVar->m_nReserved9 = atoi((*it_int_reserved9++).c_str()); // 整形预留10 pBaseVar->m_nReserved10 = atoi((*it_int_reserved10++).c_str()); //布尔型预留1 if( 0 == atoi((*it_bool_reserved1++).c_str()) ) { pBaseVar->m_bReserved1 = false; } else { pBaseVar->m_bReserved1 = true; } //布尔型预留2 if( 0 == atoi((*it_bool_reserved2++).c_str()) ) { pBaseVar->m_bReserved2 = false; } else { pBaseVar->m_bReserved2 = true; } //布尔型预留3 if( 0 == atoi((*it_bool_reserved3++).c_str()) ) { pBaseVar->m_bReserved3 = false; } else { pBaseVar->m_bReserved3 = true; } //布尔型预留4 if( 0 == atoi((*it_bool_reserved4++).c_str()) ) { pBaseVar->m_bReserved4 = false; } else { pBaseVar->m_bReserved4 = true; } //布尔型预留5 if( 0 == atoi((*it_bool_reserved5++).c_str()) ) { pBaseVar->m_bReserved5 = false; } else { pBaseVar->m_bReserved5 = true; } //布尔型预留6 if( 0 == atoi((*it_bool_reserved6++).c_str()) ) { pBaseVar->m_bReserved6 = false; } else { pBaseVar->m_bReserved6 = true; } //布尔型预留7 if( 0 == atoi((*it_bool_reserved7++).c_str()) ) { pBaseVar->m_bReserved7 = false; } else { pBaseVar->m_bReserved7 = true; } //布尔型预留8 if( 0 == atoi((*it_bool_reserved8++).c_str()) ) { pBaseVar->m_bReserved8 = false; } else { pBaseVar->m_bReserved8 = true; } //布尔型预留9 if( 0 == atoi((*it_bool_reserved9++).c_str()) ) { pBaseVar->m_bReserved9 = false; } else { pBaseVar->m_bReserved9 = true; } //布尔型预留10 if( 0 == atoi((*it_bool_reserved10++).c_str()) ) { pBaseVar->m_bReserved10 = false; } else { pBaseVar->m_bReserved10 = true; } //pBaseVar->m_dbData = -1; //pBaseVar->m_nStatus = -1; //pBaseVar->m_strContent = ""; //pBaseVar->m_nAlarmNumber = 0; pBaseVar->m_nStatusDescCount = CDBInterface::GetInstancePtr()->GetAlarmStatusDescList( (char *)(LPCTSTR)g_pDevicesManager->m_Devices[nDeviceIndex]->m_strUid, pBaseVar->m_nVarID, pBaseVar->m_listStatusID, pBaseVar->m_listStatusDesc ); //LOG4C((LOG_NOTICE, "var desc = %s, StatusDescCount = %d", pBaseVar->m_strDesc, pBaseVar->m_nStatusDescCount)); pBaseVar->m_bExistDatePlan = CDBInterface::GetInstancePtr()->IsExistDatePlan((char *)(LPCTSTR)g_pDevicesManager->m_Devices[nDeviceIndex]->m_strUid, pBaseVar->m_nVarID); if( pBaseVar->m_nVarItemID > 0 ) { char szStartBit[MAX_ID] = {0}; char szEndBit[MAX_ID] = {0}; GetVarItemInfo((char *)(LPCTSTR)g_pDevicesManager->m_Devices[nDeviceIndex]->m_strUid, pBaseVar->m_nVarItemID, szStartBit, szEndBit); pBaseVar->m_nStartBit = atoi(szStartBit); pBaseVar->m_nEndBit = atoi(szEndBit); } } } for( it_var_id = list_var_id.begin(), it_set_value = list_set_value.begin(), it_var_name = list_var_name.begin() ,it_uid = list_uid.begin(), it_upper_limit = list_upper_limit.begin() ,it_lower_limit = list_lower_limit.begin(), it_normal_state = list_normal_state.begin() ,it_identify_time = list_identify_time.begin(),it_redetect_time = list_redetect_time.begin() ,it_normal_is_notice = list_normal_is_notice.begin(), it_warn_level = list_warn_level.begin() ,it_snmp_oid = list_snmp_oid.begin(), it_fields = list_fields.begin(), it_description = list_description.begin() ,it_max_values = list_max_values.begin(), it_min_values = list_min_values.begin() ,it_max_convtrate = list_max_convtrate.begin(), it_min_convtrate = list_min_convtrate.begin() ,it_is_save = list_is_save.begin(), it_collect_freq = list_collect_freq.begin(), it_var_type_id = list_var_type_id.begin() ,it_readonly = list_readonly.begin(), it_is_dde = list_is_dde.begin(), it_address = list_address.begin() ,it_unit = list_unit.begin(), it_reccurve = list_reccurve.begin(), it_register_num = list_register_num.begin() ,it_child_id = list_child_id.begin(), it_var_item_id = list_var_item_id.begin() ,it_rearm = list_rearm.begin(), it_offsets = list_offsets.begin(), it_funcid = list_funcid.begin() ,it_data_len = list_data_len.begin(), it_coefficient = list_coefficient.begin(), it_realtimeflag = list_realtimeflag.begin() ,it_rs232_cmd = list_rs232_cmd.begin(), it_rs232_type = list_rs232_type.begin(), it_rs232_index = list_rs232_index.begin() ,it_str_reserved1 = list_str_reserved1.begin(), it_str_reserved2 = list_str_reserved2.begin() ,it_str_reserved3 = list_str_reserved3.begin(), it_str_reserved4 = list_str_reserved4.begin() ,it_str_reserved5 = list_str_reserved5.begin(), it_str_reserved6 = list_str_reserved6.begin() ,it_str_reserved7 = list_str_reserved7.begin(), it_str_reserved8 = list_str_reserved8.begin() ,it_str_reserved9 = list_str_reserved9.begin(), it_str_reserved10 = list_str_reserved10.begin() ,it_int_reserved1 = list_int_reserved1.begin(), it_int_reserved2 = list_int_reserved2.begin() ,it_int_reserved3 = list_int_reserved3.begin(), it_int_reserved4 = list_int_reserved4.begin() ,it_int_reserved5 = list_int_reserved5.begin(), it_int_reserved6 = list_int_reserved6.begin() ,it_int_reserved7 = list_int_reserved7.begin(), it_int_reserved8 = list_int_reserved8.begin() ,it_int_reserved9 = list_int_reserved9.begin(), it_int_reserved10 = list_int_reserved10.begin() ,it_bool_reserved1 = list_bool_reserved1.begin(), it_bool_reserved2 = list_bool_reserved2.begin() ,it_bool_reserved3 = list_bool_reserved3.begin(), it_bool_reserved4 = list_bool_reserved4.begin() ,it_bool_reserved5 = list_bool_reserved5.begin(), it_bool_reserved6 = list_bool_reserved6.begin() ,it_bool_reserved7 = list_bool_reserved7.begin(), it_bool_reserved8 = list_bool_reserved8.begin() ,it_bool_reserved9 = list_bool_reserved9.begin(), it_bool_reserved10 = list_bool_reserved10.begin(); it_var_id != list_var_id.end(), it_set_value != list_set_value.end(), it_var_name != list_var_name.end() ,it_uid != list_uid.end(), it_upper_limit != list_upper_limit.end() ,it_lower_limit != list_lower_limit.end(), it_normal_state != list_normal_state.end() ,it_identify_time != list_identify_time.end(),it_redetect_time != list_redetect_time.end() ,it_normal_is_notice != list_normal_is_notice.end(), it_warn_level != list_warn_level.end() ,it_snmp_oid != list_snmp_oid.end(), it_fields != list_fields.end(), it_description != list_description.end() ,it_max_values != list_max_values.end(), it_min_values != list_min_values.end() ,it_max_convtrate != list_max_convtrate.end(), it_min_convtrate != list_min_convtrate.end() ,it_is_save != list_is_save.end(), it_collect_freq != list_collect_freq.end(), it_var_type_id != list_var_type_id.end() ,it_readonly != list_readonly.end(), it_is_dde != list_is_dde.end(), it_address != list_address.end() ,it_unit != list_unit.end(), it_reccurve != list_reccurve.end(), it_register_num != list_register_num.end() ,it_child_id != list_child_id.end(), it_var_item_id != list_var_item_id.end() ,it_rearm != list_rearm.end(), it_offsets != list_offsets.end(), it_funcid != list_funcid.end() ,it_data_len != list_data_len.end(), it_coefficient != list_coefficient.end(), it_realtimeflag != list_realtimeflag.end() ,it_rs232_cmd != list_rs232_cmd.end(), it_rs232_type != list_rs232_type.end(), it_rs232_index != list_rs232_index.end() ,it_str_reserved1 != list_str_reserved1.end(), it_str_reserved2 != list_str_reserved2.end() ,it_str_reserved3 != list_str_reserved3.end(), it_str_reserved4 != list_str_reserved4.end() ,it_str_reserved5 != list_str_reserved5.end(), it_str_reserved6 != list_str_reserved6.end() ,it_str_reserved7 != list_str_reserved7.end(), it_str_reserved8 != list_str_reserved8.end() ,it_str_reserved9 != list_str_reserved9.end(), it_str_reserved10 != list_str_reserved10.end() ,it_int_reserved1 != list_int_reserved1.end(), it_int_reserved2 != list_int_reserved2.end() ,it_int_reserved3 != list_int_reserved3.end(), it_int_reserved4 != list_int_reserved4.end() ,it_int_reserved5 != list_int_reserved5.end(), it_int_reserved6 != list_int_reserved6.end() ,it_int_reserved7 != list_int_reserved7.end(), it_int_reserved8 != list_int_reserved8.end() ,it_int_reserved9 != list_int_reserved9.end(), it_int_reserved10 != list_int_reserved10.end() ,it_bool_reserved1 != list_bool_reserved1.end(), it_bool_reserved2 != list_bool_reserved2.end() ,it_bool_reserved3 != list_bool_reserved3.end(), it_bool_reserved4 != list_bool_reserved4.end() ,it_bool_reserved5 != list_bool_reserved5.end(), it_bool_reserved6 != list_bool_reserved6.end() ,it_bool_reserved7 != list_bool_reserved7.end(), it_bool_reserved8 != list_bool_reserved8.end() ,it_bool_reserved9 != list_bool_reserved9.end(), it_bool_reserved10 != list_bool_reserved10.end(); ) { list_var_id.erase(it_var_id++); list_set_value.erase(it_set_value++); list_var_name.erase(it_var_name++); list_uid.erase(it_uid++); list_upper_limit.erase(it_upper_limit++); list_lower_limit.erase(it_lower_limit++); list_normal_state.erase(it_normal_state++); list_identify_time.erase(it_identify_time++); list_redetect_time.erase(it_redetect_time++); list_normal_is_notice.erase(it_normal_is_notice++); list_warn_level.erase(it_warn_level++); list_snmp_oid.erase(it_snmp_oid++); list_fields.erase(it_fields++); list_description.erase(it_description++); list_max_values.erase(it_max_values++); list_min_values.erase(it_min_values++); list_max_convtrate.erase(it_max_convtrate++); list_min_convtrate.erase(it_min_convtrate++); list_is_save.erase(it_is_save++); list_collect_freq.erase(it_collect_freq++); list_var_type_id.erase(it_var_type_id++); list_readonly.erase(it_readonly++); list_is_dde.erase(it_is_dde++); list_address.erase(it_address++); list_unit.erase(it_unit++); list_reccurve.erase(it_reccurve++); list_register_num.erase(it_register_num++); list_child_id.erase(it_child_id++); list_var_item_id.erase(it_var_item_id++); list_rearm.erase(it_rearm++); list_offsets.erase(it_offsets++); list_funcid.erase(it_funcid++); list_data_len.erase(it_data_len++); list_coefficient.erase(it_coefficient++); list_realtimeflag.erase(it_realtimeflag++); list_rs232_cmd.erase(it_rs232_cmd++); list_rs232_type.erase(it_rs232_type++); list_rs232_index.erase(it_rs232_index++); list_str_reserved1.erase(it_str_reserved1++); list_str_reserved2.erase(it_str_reserved2++); list_str_reserved3.erase(it_str_reserved3++); list_str_reserved4.erase(it_str_reserved4++); list_str_reserved5.erase(it_str_reserved5++); list_str_reserved6.erase(it_str_reserved6++); list_str_reserved7.erase(it_str_reserved7++); list_str_reserved8.erase(it_str_reserved8++); list_str_reserved9.erase(it_str_reserved9++); list_str_reserved10.erase(it_str_reserved10++); list_int_reserved1.erase(it_int_reserved1++); list_int_reserved2.erase(it_int_reserved2++); list_int_reserved3.erase(it_int_reserved3++); list_int_reserved4.erase(it_int_reserved4++); list_int_reserved5.erase(it_int_reserved5++); list_int_reserved6.erase(it_int_reserved6++); list_int_reserved7.erase(it_int_reserved7++); list_int_reserved8.erase(it_int_reserved8++); list_int_reserved9.erase(it_int_reserved9++); list_int_reserved10.erase(it_int_reserved10++); list_bool_reserved1.erase(it_bool_reserved1++); list_bool_reserved2.erase(it_bool_reserved2++); list_bool_reserved3.erase(it_bool_reserved3++); list_bool_reserved4.erase(it_bool_reserved4++); list_bool_reserved5.erase(it_bool_reserved5++); list_bool_reserved6.erase(it_bool_reserved6++); list_bool_reserved7.erase(it_bool_reserved7++); list_bool_reserved8.erase(it_bool_reserved8++); list_bool_reserved9.erase(it_bool_reserved9++); list_bool_reserved10.erase(it_bool_reserved10++); } return nRet; } // 获取Summary资料 INT CDBInterface::GetSummaryInfo(char *pUid, char *pVarDesc, char *pID) { CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; list list1; list::iterator it; if (!_stricmp(m_chDBType, "SQL SERVER")) { sprintf(strSQLText, "select top 1 id from t_summary_log where varuid = \'%s\' and varname = \'%s\'", pUid, pVarDesc); } else if (!_stricmp(m_chDBType, "ACCESS97")) { sprintf(strSQLText, "select top 1 id from t_summary_log where varuid = \'%s\' and varname = \'%s\'", pUid, pVarDesc); } else if (!_stricmp(m_chDBType, "ACCESS2000")) { sprintf(strSQLText, "select top 1 id from t_summary_log where varuid = \'%s\' and varname = \'%s\'", pUid, pVarDesc); } else if(!_stricmp(m_chDBType, "PGSQL")) { sprintf(strSQLText, "select id from t_summary_log where varuid = \'%s\' and varname = \'%s\' limit 1", pUid, pVarDesc); } int nRet = CDBConnection::GetInstancePtr()->GetFieldValueList1(strSQLText, list1); if( 0 == list1.size() ) { return 0; } if( nRet != -1 ) { strcpy(pID, list1.begin()->c_str()); } for( it = list1.begin(); it != list1.end(); ) { list1.erase(it++); } return nRet; } // 获取报警状态ID对应的意义,用来组织报警内容 INT CDBInterface::GetAlarmStatusDescList(char chDevUid[MAX_UID], int nVarID, list& list1, list& list2) { CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; sprintf(strSQLText, "select statusid, statusdesc from t_var_status where " \ "devuid = \'%s\' and varid = %d ", chDevUid, nVarID); int nRet = CDBConnection::GetInstancePtr()->GetFieldValueList2(strSQLText, list1, list2); return nRet; } // 获取是否设置时间计划 BOOL CDBInterface::IsExistDatePlan(char *pDevUid, int nVarID) { unsigned char szArray[7][24]; memset(szArray, 0, sizeof(szArray) ); CTime time = CTime::GetCurrentTime(); // 获取当前时间 int nWeekOfDay = time.GetDayOfWeek(); if( nWeekOfDay == 1 ) { nWeekOfDay = 6; } else { nWeekOfDay -= 2; } int nHours = time.GetHour(); int nRet; nRet = GetDatePlan( PLAN_TYPE_EQUIP, pDevUid, nVarID, szArray ); if( nRet > 0 ) { for( int x=0; x<7; x++ ) { for(int y=0; y<24; y++) { if( 15 == szArray[x][y] ) { if( x == nWeekOfDay && y == nHours ) { return true; } } } } return false; } else { return true; } return false; } // 获取变量对应的bit位信息 INT CDBInterface::GetVarItemInfo(char chDevUid[MAX_ID], int nVarItemID, CHAR *pStartBit, CHAR *pEndBit) { CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; list list1, list2; list::iterator it1, it2; if (!_stricmp(m_chDBType, "SQL SERVER")) { sprintf(strSQLText, "select top 1 startbit, endbit from t_dev_variant_item where uid = '%s' " \ "and id = %d", chDevUid, nVarItemID); } else if (!_stricmp(m_chDBType, "ACCESS97")) { sprintf(strSQLText, "select top 1 startbit, endbit from t_dev_variant_item where uid = '%s' " \ "and id = %d", chDevUid, nVarItemID); } else if (!_stricmp(m_chDBType, "ACCESS2000")) { sprintf(strSQLText, "select top 1 startbit, endbit from t_dev_variant_item where uid = '%s' " \ "and id = %d", chDevUid, nVarItemID); } else if(!_stricmp(m_chDBType, "PGSQL")) { sprintf(strSQLText, "select startbit, endbit from t_dev_variant_item where uid = '%s' " \ "and id = %d limit 1", chDevUid, nVarItemID); } int nRet = CDBConnection::GetInstancePtr()->GetFieldValueList2(strSQLText, list1, list2); if( 0 == list1.size() || 0 == list2.size() ) { return 0; } if( nRet != -1 ) { strcpy(pStartBit, list1.begin()->c_str()); strcpy(pEndBit, list2.begin()->c_str()); } for( it1 = list1.begin(), it2 = list2.begin(); it1 != list1.end(), it2 != list2.end(); ) { list1.erase(it1++); list2.erase(it2++); } return nRet; } // 插入告警记录 INT CDBInterface::InsertWarningRecord( char* pEquipDesc, // 设备描述 char* pVarDesc, // 变量描述 char* pHappentime, // 发生时间 int iCurrStatus, // 当前状态 double dbCurrValue, // 当前值 char* pMemos, // 备注 char* pContent // 报警内容 ) { CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; int iMaxID; CHAR chMaxID[MAX_ID] = {0}; GetMaxID("t_waring_record", "id", chMaxID); if( 0 == atoi(chMaxID) ) { iMaxID = 1; } else { iMaxID = atoi(chMaxID) + 1; } sprintf(strSQLText, "insert into t_waring_record(id, equip_desc," \ "type_desc, happen_time, curr_status, curr_value, memos, warncontent) values(" \ "\'%d\', \'%s\', \'%s\',\' %s\', \'%d\', %f, \'%s\', \'%s\')", iMaxID, pEquipDesc, pVarDesc, pHappentime, iCurrStatus, dbCurrValue, pMemos, pContent); //LOG4C((LOG_NOTICE, "%s", strSQLText)); return CDBConnection::GetInstancePtr()->Execute(strSQLText); } //插入Summary记录 INT CDBInterface::InsertSummaryRecord( CHAR* pDevName, // 设备名称 CHAR* pHappenTime, // 发生时间 CHAR* pMemo, // 备注 CHAR *pVarDesc, // 变量描述 double dbCurrValue, // 当前值 CHAR* pVarUid, // 设备Uid CHAR* pVarName // 变量名称 ) { CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; int iMaxID; CHAR chMaxID[MAX_ID] = {0}; GetMaxID("t_summary_log", "id", chMaxID); if( 0 == atoi(chMaxID) ) { iMaxID = 1; } else { iMaxID = atoi(chMaxID) + 1; } sprintf(strSQLText, "insert into t_summary_log(devname, happentime," \ "memos, id, type_desc, curr_value, varuid, varname) values(" \ "\'%s\', \'%s\', \'%s\', %d, \'%s\', %.1f, \'%s\', \'%s\')", pDevName, pHappenTime, pMemo, iMaxID, pVarDesc, dbCurrValue, pVarUid, pVarName); //LOG4C((LOG_NOTICE, "%s", strSQLText)); return CDBConnection::GetInstancePtr()->Execute(strSQLText); } //更新Summary记录 INT CDBInterface::EditSummaryRecord( CHAR *pDevName, // 设备名称 CHAR *pHappenTime, // 发生时间 CHAR* pMemo, // 备注 int iID, // ID CHAR* pVarDesc, // 变量描述 double dbCurrValue, // 当前值 CHAR* pVarUid, // 设备Uid CHAR* pVarName // 变量名称 ) { CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; sprintf(strSQLText, "update t_summary_log set devname = \'%s\', happentime = \'%s\'," \ "memos = \'%s\', type_desc = \'%s\', curr_value = %.1f, varuid = \'%s\', varname = \'%s\' where id = %d", pDevName, pHappenTime, pMemo, pVarDesc, dbCurrValue, pVarUid, pVarName, iID); return CDBConnection::GetInstancePtr()->Execute(strSQLText); } //更新Summary记录 INT CDBInterface::EditSummaryRecord( CHAR *pDevName, // 设备名称 CHAR *pHappenTime, // 发生时间 CHAR* pMemo, // 备注 CHAR* pVarDesc, // 变量描述 double dbCurrValue, // 当前值 CHAR* pVarUid, // 设备Uid CHAR* pVarName // 变量名称 ) { CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; sprintf(strSQLText, "update t_summary_log set devname = \'%s\', happentime = \'%s\'," \ "memos = \'%s\', type_desc = \'%s\', curr_value = %.1f, varuid = \'%s\', varname = \'%s\' where varname = \'%s\'", pDevName, pHappenTime, pMemo, pVarDesc, dbCurrValue, pVarUid, pVarName, pVarName); //LOG4C((LOG_NOTICE, "%s", strSQLText)); return CDBConnection::GetInstancePtr()->Execute(strSQLText); } //插入Sms记录 INT CDBInterface::InsertSmsRecord( CHAR* pTelNum, // 电话号码 CHAR* pContactName, // 联系人姓名 CHAR* pSendTime, // 发送时间 CHAR* pContent, // 内容 CHAR* pMemo // 备注 ) { CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; sprintf(strSQLText, "insert into t_sms_rec(telnum, contactname," \ "sendtime, contents, memos) values(" \ "\'%s\', \'%s\', \'%s\', \'%s\', \'%s\')", pTelNum, pContactName, pSendTime, pContent, pMemo); return CDBConnection::GetInstancePtr()->Execute(strSQLText); } //插入Notice记录 INT CDBInterface::InsertNoticeRecord( CHAR* pTelNum, // 电话号码 CHAR* pContactName, // 联系人姓名 CHAR* pSendTime, // 发送时间 CHAR* pContent, // 内容 CHAR* pMemo // 备注 ) { CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; sprintf(strSQLText, "insert into t_notice_rec(telnum, contactname," \ "sendtime, contents, memos) values(" \ "\'%s\', \'%s\', \'%s\', \'%s\', \'%s\')", pTelNum, pContactName, pSendTime, pContent, pMemo); return CDBConnection::GetInstancePtr()->Execute(strSQLText); } //插入Email记录 INT CDBInterface::InsertEmailRecord( CHAR* pEmailAddr, // 电话号码 CHAR* pContactName, // 联系人姓名 CHAR* pSendTime, // 发送时间 CHAR* pContent, // 内容 CHAR* pMemo // 备注 ) { CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; sprintf(strSQLText, "insert into t_email_rec(emailaddr, contactname," \ "sendtime, contents, memos) values(" \ "\'%s\', \'%s\', \'%s\', \'%s\', \'%s\')", pEmailAddr, pContactName, pSendTime, pContent, pMemo); return CDBConnection::GetInstancePtr()->Execute(strSQLText); } };