/////////////////////////////////////////////////////////// // // File: // DBConnection.cpp // Author: // 严晓斌 // Date: // 2008-05-23 // Comments: // 主要处理数据库连接任务 // /////////////////////////////////////////////////////////// #include "stdafx.h" #include "Global.h" //#include #include #include #include #include "mdlProject.h" //#include "Ado.h" #include "DBConnection.h" //#include HANDLE m_hDBConnectionThread = NULL; BOOL m_bBeep = FALSE; BOOL m_bDBConnected = FALSE; BOOL DBConnectionThreadStart() { HANDLE hThread = NULL; INT iConfMemberIndex = 0; INT iConfGroupIndex = 0; //数据库连接串 if (!_stricmp(g_strDBType, "SQL SERVER")) sprintf(g_strConnectString, "Provider=sqloledb;Data Source=%s,1433;Initial Catalog=%s;User Id=%s;Password=%s; ", g_strServerName, g_strDataBaseName, g_strUserName, g_strPassword); else if (!_stricmp(g_strDBType, "ACCESS97")) sprintf(g_strConnectString, "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=%s", g_strAccessFile); else if (!_stricmp(g_strDBType, "ACCESS2000")) sprintf(g_strConnectString, "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s", g_strAccessFile); else if(!_stricmp(g_strDBType, "PGSQL")) sprintf(g_strConnectString, "DRIVER={PostgreSQL ODBC Driver(UNICODE)}; SERVER=%s; port=5432; DATABASE=%s; UID=%s; PWD=%s;", g_strServerName, g_strDataBaseName, g_strDBUserName, g_strPassword); else sprintf(g_strConnectString, "Provider=sqloledb;Data Source=%s;Initial Catalog=%s;User Id=%s;Password=%s; ", g_strServerName, g_strDataBaseName, g_strUserName, g_strPassword); g_pADODatabase = new CADODatabase; if (g_pADODatabase != NULL) { g_pADODatabase->SetConnectionString(g_strConnectString); if (FALSE == g_pADODatabase->Open()) { g_pADODatabase->Close(); delete g_pADODatabase; g_pADODatabase = NULL; m_bBeep = TRUE; } else { m_bDBConnected = TRUE; } } return TRUE; } BOOL DBConnectionThreadEnd() { if ((g_pADODatabase != NULL) && (g_pADODatabase->IsOpen())) { g_pADODatabase->Close(); delete g_pADODatabase; g_pADODatabase = NULL; } return TRUE; } //获取表最大的ID, 通用函数 INT 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 = 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; } //获取t_dev_variant变量属性表字段ID的最大值 INT GetVarMaxID( CHAR *pMaxID ) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; CString strID; CADORecordset* pRSet = NULL; INT iRetCode = 0; int nCount = 0; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { pRSet = new CADORecordset(g_pADODatabase); if (NULL == pRSet) { return -1; } sprintf(strSQLText, "select max(id) as maxid from t_dev_variant"); iRetCode = pRSet->Open(strSQLText, CADORecordset::openQuery); if (iRetCode == 0) { delete pRSet; pRSet = NULL; return -1; } nCount = pRSet->GetRecordCount(); if (nCount == 0) { if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } // 获取最大的设备ID if (!pRSet->IsFieldNull("maxid")) { pRSet->GetFieldValue("maxid", strID); strcpy(pMaxID, (char *)(LPCTSTR)strID); } if( pRSet ) { delete pRSet; pRSet = NULL; } return nCount; } } catch (_com_error &e) { if( pRSet ) { delete pRSet; pRSet = NULL; } //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return -1; } if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } //插入设备资料 INT InsertVarInfo(int nID, CHAR *pUid, CHAR *pVarName, CHAR *pDesc, int nVarTypeID, int nDataLen, CHAR *pOnDesc, CHAR *pOffDesc, int nMaxValues, int nMinValues, int nMaxScale, int nMinScale, int nLowerLimit, int nUpperLimit, int nNormalState, CHAR *pSetValue, int nRearm, int nOffset, CHAR *pUnit, int nCollentFreq, float fCoef, int nWarnLevel, int nReadOnly, int nIsSave, int nRealtimeFlag, int nRecCurve, int nIsDDE, int nRegNum, int nFuncID, int nChildID, int nVarItemID, CHAR *pSnmpOid, CHAR *pField, int nDevID, int nRegStartAddr, CHAR *pRs232Cmd, CHAR *pRs232Type, int nRs232Index, int nIdentifyTime, int nReDetectTime, int nNormIsNotice, char *pStrReserved1, char *pStrReserved2, char *pStrReserved3, char *pStrReserved4, char *pStrReserved5, char *pStrReserved6, char *pStrReserved7, char *pStrReserved8, char *pStrReserved9, char *pStrReserved10, int nReserved1, int nReserved2, int nReserved3, int nReserved4, int nReserved5, int nReserved6, int nReserved7, int nReserved8, int nReserved9, int nReserved10, int bReserved1, int bReserved2, int bReserved3, int bReserved4, int bReserved5, int bReserved6, int bReserved7, int bReserved8, int bReserved9, int bReserved10) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[409600] = ""; INT iRetCode = 0; CString strIsDDE, strRecCurve, strRealtimeFlag, strIsSave, strNormalIsNotice, strReadOnly; CString strbResrved1, strbResrved2, strbResrved3, strbResrved4, strbResrved5; CString strbResrved6, strbResrved7, strbResrved8, strbResrved9, strbResrved10; strIsDDE = (nIsDDE == 0)?"FALSE":"TRUE"; strRecCurve = (nRecCurve == 0)?"FALSE":"TRUE"; strRealtimeFlag = (nRealtimeFlag == 0)?"FALSE":"TRUE"; strIsSave = (nIsSave == 0)?"FALSE":"TRUE"; strNormalIsNotice = (nNormIsNotice == 0)?"FALSE":"TRUE"; strbResrved1 = (bReserved1 == 0)?"FALSE":"TRUE"; strbResrved2 = (bReserved2 == 0)?"FALSE":"TRUE"; strbResrved3 = (bReserved3 == 0)?"FALSE":"TRUE"; strbResrved4 = (bReserved4 == 0)?"FALSE":"TRUE"; strbResrved5 = (bReserved5 == 0)?"FALSE":"TRUE"; strbResrved6 = (bReserved6 == 0)?"FALSE":"TRUE"; strbResrved7 = (bReserved7 == 0)?"FALSE":"TRUE"; strbResrved8 = (bReserved8 == 0)?"FALSE":"TRUE"; strbResrved9 = (bReserved9 == 0)?"FALSE":"TRUE"; strbResrved10 = (bReserved10 == 0)?"FALSE":"TRUE"; strReadOnly.Format("%d", nReadOnly); try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { if (!_stricmp(g_strDBType, "SQL SERVER")) { sprintf(strSQLText, "insert into t_dev_variant(id, uid, varname, description, vartypeid, " \ "datalen, ondesc, offdesc, maxvalues, minvalues, maxconvtrate, minconvtrate, " \ "lowerlimit, upperlimit, normalstate, setvalue, rearm, [offsets], unit, collectfrequence, " \ "coefficient, warnlevel, readonly, issave, realtimeflag, reccurve, isdde, " \ "registernum, funcid, childid, var_item_id, snmpoid, fields, devtypeid, address, " \ "rs232cmd, rs232type, rs232index, identifytime, redetecttime, normalisnotice, " \ "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) values(" \ "%d, \'%s\', \'%s\', \'%s\', %d, " \ "%d, \'%s\', \'%s\', %d, %d, %d, %d, " \ "%d, %d, %d, \'%s\', %d, %d, \'%s\', %d," \ "%.10f, %d, \'%s\', %d, %d, %d, %d," \ "%d, %d, %d, %d, \'%s\', \'%s\', %d, %d, " \ "\'%s\', \'%s\', %d, %d, %d, %d, " \ "\'%s\', \'%s\', \'%s\', \'%s\', \'%s\', " \ "\'%s\', \'%s\', \'%s\', \'%s\', \'%s\', " \ "%d, %d, %d, %d, %d, " \ "%d, %d, %d, %d, %d, " \ "%d, %d, %d, %d, %d, " \ "%d, %d, %d, %d, %d)", nID, pUid, pVarName, pDesc, nVarTypeID, nDataLen, pOnDesc, pOffDesc, nMaxValues, nMinValues, nMaxScale, nMinScale, nLowerLimit, nUpperLimit, nNormalState, pSetValue, nRearm, nOffset, pUnit, nCollentFreq, fCoef, nWarnLevel, strReadOnly, nIsSave, nRealtimeFlag, nRecCurve, nIsDDE, nRegNum, nFuncID, nChildID, nVarItemID, pSnmpOid, pField, nDevID, nRegStartAddr, pRs232Cmd, pRs232Type, nRs232Index, nIdentifyTime, nReDetectTime, nNormIsNotice, pStrReserved1, pStrReserved2, pStrReserved3, pStrReserved4, pStrReserved5, pStrReserved6, pStrReserved7, pStrReserved8, pStrReserved9, pStrReserved10, nReserved1, nReserved2, nReserved3, nReserved4, nReserved5, nReserved6, nReserved7, nReserved8, nReserved9, nReserved10, bReserved1, bReserved2, bReserved3, bReserved4, bReserved5, bReserved6, bReserved7, bReserved8, bReserved9, bReserved10); } else if (!_stricmp(g_strDBType, "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(g_strDBType, "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(g_strDBType, "PGSQL")) { sprintf(strSQLText, "insert into t_dev_variant(id, uid, varname, description, vartypeid, " \ "datalen, ondesc, offdesc, maxvalues, minvalues, maxconvtrate, minconvtrate, " \ "lowerlimit, upperlimit, normalstate, setvalue, rearm, offsets, unit, collectfrequence, " \ "coefficient, warnlevel, readonly, issave, realtimeflag, reccurve, isdde, " \ "registernum, funcid, childid, var_item_id, snmpoid, fields, devtypeid, address, " \ "rs232cmd, rs232type, rs232index, identifytime, redetecttime, normalisnotice, " \ "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) values(" \ "%d, \'%s\', \'%s\', \'%s\', %d, " \ "%d, \'%s\', \'%s\', %d, %d, %d, %d, " \ "%d, %d, %d, \'%s\', %d, %d, \'%s\', %d," \ "%.10f, %d, \'%s\', %s, %s, %s, %s," \ "%d, %d, %d, %d, \'%s\', \'%s\', %d, %d, " \ "\'%s\', \'%s\', %d, %d, %d, %s, " \ "\'%s\', \'%s\', \'%s\', \'%s\', \'%s\', " \ "\'%s\', \'%s\', \'%s\', \'%s\', \'%s\', " \ "%d, %d, %d, %d, %d, " \ "%d, %d, %d, %d, %d, " \ "%s, %s, %s, %s, %s, " \ "%s, %s, %s, %s, %s)", nID, pUid, pVarName, pDesc, nVarTypeID, nDataLen, pOnDesc, pOffDesc, nMaxValues, nMinValues, nMaxScale, nMinScale, nLowerLimit, nUpperLimit, nNormalState, pSetValue, nRearm, nOffset, pUnit, nCollentFreq, fCoef, nWarnLevel, strReadOnly, strIsSave, strRealtimeFlag, strRecCurve, strIsDDE, nRegNum, nFuncID, nChildID, nVarItemID, pSnmpOid, pField, nDevID, nRegStartAddr, pRs232Cmd, pRs232Type, nRs232Index, nIdentifyTime, nReDetectTime, strNormalIsNotice, pStrReserved1, pStrReserved2, pStrReserved3, pStrReserved4, pStrReserved5, pStrReserved6, pStrReserved7, pStrReserved8, pStrReserved9, pStrReserved10, nReserved1, nReserved2, nReserved3, nReserved4, nReserved5, nReserved6, nReserved7, nReserved8, nReserved9, nReserved10, strbResrved1, strbResrved2, strbResrved3, strbResrved4, strbResrved5, strbResrved6, strbResrved7, strbResrved8, strbResrved9, strbResrved10); } iRetCode = g_pADODatabase->Execute(strSQLText); } } catch (_com_error &e) { //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return 0; } return iRetCode; } //获取t_dev_variant_item资料 INT GetVarItem( CHAR *pUid, int nVarItemID ) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; CString strID; CADORecordset* pRSet = NULL; INT iRetCode = 0; int nCount = 0; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { pRSet = new CADORecordset(g_pADODatabase); if (NULL == pRSet) { return -1; } sprintf(strSQLText, "select id from t_dev_variant_item where uid = \'%s\' and id = %d", pUid, nVarItemID); iRetCode = pRSet->Open(strSQLText, CADORecordset::openQuery); if (iRetCode == 0) { delete pRSet; pRSet = NULL; return -1; } nCount = pRSet->GetRecordCount(); if (nCount == 0) { if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } if( pRSet ) { delete pRSet; pRSet = NULL; } return nCount; } } catch (_com_error &e) { if( pRSet ) { delete pRSet; pRSet = NULL; } //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return -1; } if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } //插入Bit位表 INT InsertVarItemInfo(int nID, CHAR *pUid, int nStartBit, int nEndBit) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; INT iRetCode = 0; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { sprintf(strSQLText, "insert into t_dev_variant_item(id, uid, startbit, endbit) values(" \ "%d, \'%s\', %d, %d)", nID, pUid, nStartBit, nEndBit); iRetCode = g_pADODatabase->Execute(strSQLText); } } catch (_com_error &e) { //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return 0; } return iRetCode; } //插入数据记录 INT InsertDataRecord( CHAR* pDevName, // 设备名称 CHAR* pHappenTime, // 发生时间 CHAR* pVarName, // 变量名称 CHAR *pVarDesc, // 变量描述 double dbCurrValue // 当前值 ) { INT iRetCode = 0; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; static int iMaxID = 1; //CHAR chMaxID[MAX_ID] = {0}; //GetMaxID("t_data_rec", "id", chMaxID); //if( 0 == atoi(chMaxID) ) //{ // iMaxID = 1; //} //else //{ // iMaxID = atoi(chMaxID) + 1; //} if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { sprintf(strSQLText, "insert into t_data_rec(id,devname, happentime,varname,vardesc,datavalue) values(" \ "%d, \'%s\', \'%s\', \'%s\', \'%s\', %.1f)", iMaxID, pDevName, pHappenTime,pVarName, pVarDesc, dbCurrValue ); iRetCode = g_pADODatabase->Execute(strSQLText); iMaxID++; } return iRetCode; } //插入控制器记录 INT InsertControlInfo( int nbrandtype, CHAR* scontrolname, CHAR* ssn, int nwordmode, int ncomport, CHAR* sip, CHAR* sport, int nforbid, int ndoorconut, CHAR* sdoor1, CHAR* sdoor2, CHAR* sdoor3, CHAR* sdoor4, CHAR* sdoor5, CHAR* sdoor6, CHAR* sdoor7, CHAR* sdoor8 ) { CString sShow,sTemp; sTemp.Format( "%s",scontrolname ); if( sTemp=="" ) { sShow.Format("%s%s",g_strControlName,g_strNotNull ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } sTemp.Format( "%s",ssn ); if( sTemp=="" ) { sShow.Format("%s%s",g_strControlSN,g_strNotNull ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } if( IsExistItem( "t_door_control","scontrolname",scontrolname ) ) { sShow.Format("%s%s",g_strControlName,g_strExist ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } if( IsExistItem( "t_door_control","ssn",ssn ) ) { sShow.Format("%s%s",g_strControlSN,g_strExist ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } INT iRetCode = -1; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; int iMaxID = 0; CHAR chMaxID[MAX_ID] = {0}; GetMaxID("t_door_control", "id", chMaxID); if( 0 == atoi(chMaxID) ) { iMaxID = 1; } else { iMaxID = atoi(chMaxID) + 1; } if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { sprintf(strSQLText, "insert into t_door_control( id,nbrandtype,scontrolname,ssn,nwordmode,ncomport,sip,sport,nforbid,ndoorconut,sdoor1,sdoor2,sdoor3,sdoor4,sdoor5,sdoor6,sdoor7,sdoor8 ) values(" \ "%d, %d,\'%s\',\'%s\',%d,%d,\'%s\',\'%s\',%d,%d,\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\')", iMaxID, nbrandtype,scontrolname,ssn,nwordmode,ncomport,sip,sport,nforbid,ndoorconut,sdoor1,sdoor2,sdoor3,sdoor4,sdoor5,sdoor6,sdoor7,sdoor8 ); iRetCode = g_pADODatabase->Execute(strSQLText); } return iMaxID; } //更新控制器记录 INT UpdateControlInfo( int nID, int nbrandtype, CHAR* scontrolname, CHAR* ssn, int nwordmode, int ncomport, CHAR* sip, CHAR* sport, int nforbid, int ndoorconut, CHAR* sdoor1, CHAR* sdoor2, CHAR* sdoor3, CHAR* sdoor4, CHAR* sdoor5, CHAR* sdoor6, CHAR* sdoor7, CHAR* sdoor8 ) { CString sShow,sTemp; sTemp.Format( "%s",scontrolname ); if( sTemp=="" ) { sShow.Format("%s%s",g_strControlName,g_strNotNull ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } sTemp.Format( "%s",ssn ); if( sTemp=="" ) { sShow.Format("%s%s",g_strControlSN,g_strNotNull ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } if( IsExistItem( "t_door_control","scontrolname",scontrolname,nID ) ) { sShow.Format("%s%s",g_strControlName,g_strExist ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } if( IsExistItem( "t_door_control","ssn",ssn,nID ) ) { sShow.Format("%s%s",g_strControlSN,g_strExist ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; INT iRetCode = 0; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { sprintf(strSQLText, "update t_door_control set nbrandtype=%d,scontrolname=\'%s\',ssn=\'%s\',nwordmode=%d,ncomport=%d,sip=\'%s\',sport=\'%s\',nforbid=%d,ndoorconut=%d, "\ " sdoor1=\'%s\',sdoor2=\'%s\',sdoor3=\'%s\',sdoor4=\'%s\',sdoor5=\'%s\',sdoor6=\'%s\',sdoor7=\'%s\',sdoor8=\'%s\' where id = %d", nbrandtype,scontrolname,ssn,nwordmode,ncomport,sip,sport,nforbid,ndoorconut,sdoor1,sdoor2,sdoor3,sdoor4,sdoor5,sdoor6,sdoor7,sdoor8,nID ); iRetCode = g_pADODatabase->Execute(strSQLText); } } catch (_com_error &e) { //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return 0; } return iRetCode; } //插入卡记录 INT InsertCardInfo( CHAR* susername, CHAR* scardnumber, CHAR* sclass, CHAR* sjobnumber, CHAR* sremarks ) { CString sShow,sTemp; sTemp.Format( "%s",susername ); if( sTemp=="" ) { sShow.Format("%s%s",g_strUserName,g_strNotNull ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } sTemp.Format( "%s",scardnumber ); if( sTemp=="" ) { sShow.Format("%s%s",g_strCardNumber,g_strNotNull ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } if( IsExistItem( "t_door_card","susername",susername ) ) { sShow.Format("%s%s",g_strUserName,g_strExist ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } if( IsExistItem( "t_door_card","scardnumber",scardnumber ) ) { sShow.Format("%s%s",g_strCardNumber,g_strExist ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } INT iRetCode = 0; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; int iMaxID = 0; CHAR chMaxID[MAX_ID] = {0}; GetMaxID("t_door_card", "id", chMaxID); if( 0 == atoi(chMaxID) ) { iMaxID = 1; } else { iMaxID = atoi(chMaxID) + 1; } if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { sprintf(strSQLText, "insert into t_door_card( id,susername,scardnumber,sclass,sjobnumber,sremarks ) values(" \ "%d, \'%s\',\'%s\',\'%s\',\'%s\',\'%s\')", iMaxID,susername,scardnumber,sclass,sjobnumber,sremarks ); g_pADODatabase->Execute(strSQLText); } return iMaxID; } //插入卡记录_导入 INT InsertCardInfo_INPUT( CHAR* susername, CHAR* scardnumber, CHAR* sclass, CHAR* sjobnumber, CHAR* sremarks ) { CString sShow,sTemp; sTemp.Format( "%s",susername ); if( sTemp=="" ) { sShow.Format("%s%s",g_strUserName,g_strNotNull ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } sTemp.Format( "%s",scardnumber ); if( sTemp=="" ) { sShow.Format("%s%s",g_strCardNumber,g_strNotNull ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } if( IsExistItem( "t_door_card","susername",susername ) ) { sShow.Format("%s%s",g_strUserName,g_strExist ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } if( IsExistItem( "t_door_card","scardnumber",scardnumber ) ) { sShow.Format("%s%s",g_strCardNumber,g_strExist ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } INT iRetCode = -1; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; int iMaxID = 0; CHAR chMaxID[MAX_ID] = {0}; GetMaxID("t_door_card", "id", chMaxID); if( 0 == atoi(chMaxID) ) { iMaxID = 1; } else { iMaxID = atoi(chMaxID) + 1; } if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { sprintf(strSQLText, "insert into t_door_card( id,susername,scardnumber,sclass,sjobnumber,sremarks ) values(" \ "%d, \'%s\',\'%s\',\'%s\',\'%s\',\'%s\')", iMaxID,susername,scardnumber,sclass,sjobnumber,sremarks ); iRetCode = g_pADODatabase->Execute(strSQLText); } return iMaxID; } //更新卡记录 INT UpdateCardInfo( int nID, CHAR* susername, CHAR* scardnumber, CHAR* sclass, CHAR* sjobnumber, CHAR* sremarks ) { CString sShow,sTemp; sTemp.Format( "%s",susername ); if( sTemp=="" ) { sShow.Format("%s%s",g_strUserName,g_strNotNull ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } sTemp.Format( "%s",scardnumber ); if( sTemp=="" ) { sShow.Format("%s%s",g_strCardNumber,g_strNotNull ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } if( IsExistItem( "t_door_card","susername",susername,nID ) ) { sShow.Format("%s%s",g_strUserName,g_strExist ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } if( IsExistItem( "t_door_card","scardnumber",scardnumber,nID ) ) { sShow.Format("%s%s",g_strCardNumber,g_strExist ); MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION); return -1; } CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; INT iRetCode = 0; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { sprintf(strSQLText, "update t_door_card set susername=\'%s\',scardnumber=\'%s\',sclass=\'%s\',sjobnumber=\'%s\',sremarks=\'%s\' where id = %d", susername,scardnumber,sclass,sjobnumber,sremarks,nID ); iRetCode = g_pADODatabase->Execute(strSQLText); } } catch (_com_error &e) { //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return 0; } return iRetCode; } //插入进出记录 INT InsertRecordInfo( CHAR* scardnumber, CHAR* speople, CHAR* sinout, CHAR* sinfo, CHAR* stime ) { INT iRetCode = 0; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; int iMaxID = 0; CHAR chMaxID[MAX_ID] = {0}; GetMaxID("t_door_record", "id", chMaxID); if( 0 == atoi(chMaxID) ) { iMaxID = 1; } else { iMaxID = atoi(chMaxID) + 1; } if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { sprintf(strSQLText, "insert into t_door_record( id,scardnumber,speople,sinout,sinfo,stime ) values(" \ "%d, \'%s\',\'%s\',\'%s\',\'%s\',\'%s\')", iMaxID,scardnumber,speople,sinout,sinfo,stime ); iRetCode = g_pADODatabase->Execute(strSQLText); } return iRetCode; } //更新Bit位表 INT UpdateVarItemInfo(int nID, CHAR *pUid, int nStartBit, int nEndBit) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; INT iRetCode = 0; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { sprintf(strSQLText, "update t_dev_variant_item set startbit = %d, endbit = %d where id = %d and uid = \'%s\'", nStartBit, nEndBit, nID, pUid); iRetCode = g_pADODatabase->Execute(strSQLText); } } catch (_com_error &e) { //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return 0; } return iRetCode; } //插入变量状态描述 INT InsertVarStatusInfo(int nID, CHAR *pUid, int nVarID, int nStatusID, CHAR *pStatusDesc) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; INT iRetCode = 0; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { sprintf(strSQLText, "insert into t_var_status(id, devuid, varid, statusid, statusdesc, normalstatus) values(" \ "%d, \'%s\', %d, %d, \'%s\', %d)", nID, pUid, nVarID, nStatusID, pStatusDesc, 0); iRetCode = g_pADODatabase->Execute(strSQLText); } } catch (_com_error &e) { //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return 0; } return iRetCode; } //删除变量状态描述 INT DeleteVarStatusInfo(CHAR *pUid, int nVarID) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; INT iRetCode = 0; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { sprintf(strSQLText, "delete from t_var_status where devuid = \'%s\' and varid = %d ", pUid, nVarID); iRetCode = g_pADODatabase->Execute(strSQLText); } } catch (_com_error &e) { //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return 0; } return iRetCode; } //清空表 INT CleanTable( CHAR *pTableName ) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; INT iRetCode = 0; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { sprintf(strSQLText, "delete from %s where id >0 ", pTableName); iRetCode = g_pADODatabase->Execute(strSQLText); } } catch (_com_error &e) { //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return 0; } return iRetCode; } //删除表中的项 INT DelItemFromTable( CHAR *pTableName,CHAR* iItem,int nData ) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; INT iRetCode = 0; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { sprintf(strSQLText, "delete from %s where %s = %d ", pTableName,iItem,nData ); iRetCode = g_pADODatabase->Execute(strSQLText); } } catch (_com_error &e) { //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return 0; } return iRetCode; } bool IsExistItem( CHAR *pTableName,CHAR* iItem,CHAR* sData ) { bool bRet = false; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; list list1; list::iterator it; sprintf(strSQLText, "select id from %s where %s=\'%s\'", pTableName,iItem,sData ); int nRet = GetFieldValueList1(strSQLText, list1); if( 0 == list1.size() ) { return bRet; } if( nRet != -1 ) { bRet = true; } for( it = list1.begin(); it != list1.end(); ) { list1.erase(it++); } return bRet; } bool IsExistItem( CHAR *pTableName,CHAR* iItem,CHAR* sData,int iID ) { bool bRet = false; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; list list1; list::iterator it; sprintf(strSQLText, "select id from %s where %s=\'%s\'", pTableName,iItem,sData ); int nRet = GetFieldValueList1(strSQLText, list1); if( 0 == list1.size() ) { return bRet; } if( nRet != -1 ) { it=list1.begin(); CString s = (*it).c_str(); if( atoi( (*it).c_str() ) != iID ) { bRet = true; } } for( it = list1.begin(); it != list1.end(); ) { list1.erase(it++); } return bRet; } //获取变量报警状态最大的ID INT GetVarStatusMaxID( CHAR *pMaxID ) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; CString strID; CADORecordset* pRSet = NULL; INT iRetCode = 0; int nCount = 0; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { pRSet = new CADORecordset(g_pADODatabase); if (NULL == pRSet) { return -1; } sprintf(strSQLText, "select max(id) as maxid from t_var_status"); iRetCode = pRSet->Open(strSQLText, CADORecordset::openQuery); if (iRetCode == 0) { delete pRSet; pRSet = NULL; return -1; } nCount = pRSet->GetRecordCount(); if (nCount == 0) { if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } // 获取最大的设备ID if (!pRSet->IsFieldNull("maxid")) { pRSet->GetFieldValue("maxid", strID); strcpy(pMaxID, (char *)(LPCTSTR)strID); } if( pRSet ) { delete pRSet; pRSet = NULL; } return nCount; } } catch (_com_error &e) { if( pRSet ) { delete pRSet; pRSet = NULL; } //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return -1; } if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } int GetFieldValueList1(char *pSql, list& list1) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; CString strID; CADORecordset* pRSet = NULL; INT iRetCode = 0; int nCount = 0; _variant_t vtFieldValue; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { pRSet = new CADORecordset(g_pADODatabase); if (NULL == pRSet) { return -1; } //sprintf(strSQLText, "select max(id) as maxid from t_var_status"); iRetCode = pRSet->Open(pSql, CADORecordset::openQuery); if (iRetCode == 0) { delete pRSet; pRSet = NULL; return -1; } nCount = pRSet->GetRecordCount(); if (nCount == 0) { if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } for( int i = 0; i < nCount; i++ ) { if( pRSet->GetFieldCount() >= 1 ) { if( !pRSet->IsFieldNull(0) ) { pRSet->GetFieldValue(0, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list1.insert(list1.end(), strFieldValue); } else { list1.insert(list1.end(), ""); }// end if( !pRSet->IsFieldNull(0) ) }// end if( pRSet->GetFieldCount() >= 2 ) pRSet->MoveNext(); }// end for( int i = 0; i < nRecordCount; i++ ) if( pRSet ) { delete pRSet; pRSet = NULL; } return nCount; } } catch (_com_error &e) { if( pRSet ) { delete pRSet; pRSet = NULL; } //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return -1; } if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } int GetFieldValueList2(char *pSql, list& list1, list& list2) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; CString strID; CADORecordset* pRSet = NULL; INT iRetCode = 0; int nCount = 0; _variant_t vtFieldValue; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { pRSet = new CADORecordset(g_pADODatabase); if (NULL == pRSet) { return -1; } //sprintf(strSQLText, "select max(id) as maxid from t_var_status"); iRetCode = pRSet->Open(pSql, CADORecordset::openQuery); if (iRetCode == 0) { delete pRSet; pRSet = NULL; return -1; } nCount = pRSet->GetRecordCount(); if (nCount == 0) { if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } for( int i = 0; i < nCount; i++ ) { if( pRSet->GetFieldCount() >= 2 ) { if( !pRSet->IsFieldNull(0) ) { pRSet->GetFieldValue(0, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list1.insert(list1.end(), strFieldValue); } else { list1.insert(list1.end(), ""); }// end if( !pRSet->IsFieldNull(0) ) if( !pRSet->IsFieldNull(1) ) { pRSet->GetFieldValue(1, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list2.insert(list2.end(), strFieldValue); } else { list2.insert(list2.end(), ""); }// end if( !pRSet->IsFieldNull(1) ) }// end if( pRSet->GetFieldCount() >= 2 ) pRSet->MoveNext(); }// end for( int i = 0; i < nRecordCount; i++ ) if( pRSet ) { delete pRSet; pRSet = NULL; } return nCount; } } catch (_com_error &e) { if( pRSet ) { delete pRSet; pRSet = NULL; } //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return -1; } if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } int GetFieldValueList3(char *pSql, list& list1, list& list2, list& list3) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; CString strID; CADORecordset* pRSet = NULL; INT iRetCode = 0; int nCount = 0; _variant_t vtFieldValue; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { pRSet = new CADORecordset(g_pADODatabase); if (NULL == pRSet) { return -1; } //sprintf(strSQLText, "select max(id) as maxid from t_var_status"); iRetCode = pRSet->Open(pSql, CADORecordset::openQuery); if (iRetCode == 0) { delete pRSet; pRSet = NULL; return -1; } nCount = pRSet->GetRecordCount(); if (nCount == 0) { if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } for( int i = 0; i < nCount; i++ ) { if( pRSet->GetFieldCount() >= 2 ) { if( !pRSet->IsFieldNull(0) ) { pRSet->GetFieldValue(0, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list1.insert(list1.end(), strFieldValue); } else { list1.insert(list1.end(), ""); }// end if( !pRSet->IsFieldNull(0) ) if( !pRSet->IsFieldNull(1) ) { pRSet->GetFieldValue(1, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list2.insert(list2.end(), strFieldValue); } else { list2.insert(list2.end(), ""); }// end if( !pRSet->IsFieldNull(1) ) if( !pRSet->IsFieldNull(2) ) { pRSet->GetFieldValue(2, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list3.insert(list3.end(), strFieldValue); } else { list3.insert(list3.end(), ""); }// end if( !pRSet->IsFieldNull(1) ) }// end if( pRSet->GetFieldCount() >= 2 ) pRSet->MoveNext(); }// end for( int i = 0; i < nRecordCount; i++ ) if( pRSet ) { delete pRSet; pRSet = NULL; } return nCount; } } catch (_com_error &e) { if( pRSet ) { delete pRSet; pRSet = NULL; } //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return -1; } if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } int GetFieldValueList6(char *pSql,list& list1,list& list2,list& list3,list& list4,list& list5,list& list6) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; CString strID; CADORecordset* pRSet = NULL; INT iRetCode = 0; int nCount = 0; _variant_t vtFieldValue; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { pRSet = new CADORecordset(g_pADODatabase); if (NULL == pRSet) { return -1; } //sprintf(strSQLText, "select max(id) as maxid from t_var_status"); iRetCode = pRSet->Open(pSql, CADORecordset::openQuery); if (iRetCode == 0) { delete pRSet; pRSet = NULL; return -1; } nCount = pRSet->GetRecordCount(); if (nCount == 0) { if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } for( int i = 0; i < nCount; i++ ) { if( pRSet->GetFieldCount() >= 5 ) { if( !pRSet->IsFieldNull(0) ) { pRSet->GetFieldValue(0, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list1.insert(list1.end(), strFieldValue); } else { list1.insert(list1.end(), ""); } if( !pRSet->IsFieldNull(1) ) { pRSet->GetFieldValue(1, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list2.insert(list2.end(), strFieldValue); } else { list2.insert(list2.end(), ""); } if( !pRSet->IsFieldNull(2) ) { pRSet->GetFieldValue(2, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list3.insert(list3.end(), strFieldValue); } else { list3.insert(list3.end(), ""); } if( !pRSet->IsFieldNull(3) ) { pRSet->GetFieldValue(3, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list4.insert(list4.end(), strFieldValue); } else { list4.insert(list4.end(), ""); } if( !pRSet->IsFieldNull(4) ) { pRSet->GetFieldValue(4, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list5.insert(list5.end(), strFieldValue); } else { list5.insert(list5.end(), ""); } if( !pRSet->IsFieldNull(5) ) { pRSet->GetFieldValue(5, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list6.insert(list6.end(), strFieldValue); } else { list6.insert(list6.end(), ""); } } pRSet->MoveNext(); }// end for( int i = 0; i < nRecordCount; i++ ) if( pRSet ) { delete pRSet; pRSet = NULL; } return nCount; } } catch (_com_error &e) { if( pRSet ) { delete pRSet; pRSet = NULL; } //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return -1; } if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } int GetFieldValueList9(char *pSql,list& list1,list& list2,list& list3,list& list4,list& list5,list& list6,list& list7,list& list8,list& list9) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; CString strID; CADORecordset* pRSet = NULL; INT iRetCode = 0; int nCount = 0; _variant_t vtFieldValue; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { pRSet = new CADORecordset(g_pADODatabase); if (NULL == pRSet) { return -1; } //sprintf(strSQLText, "select max(id) as maxid from t_var_status"); iRetCode = pRSet->Open(pSql, CADORecordset::openQuery); if (iRetCode == 0) { delete pRSet; pRSet = NULL; return -1; } nCount = pRSet->GetRecordCount(); if (nCount == 0) { if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } for( int i = 0; i < nCount; i++ ) { if( pRSet->GetFieldCount() >= 5 ) { if( !pRSet->IsFieldNull(0) ) { pRSet->GetFieldValue(0, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list1.insert(list1.end(), strFieldValue); } else { list1.insert(list1.end(), ""); } if( !pRSet->IsFieldNull(1) ) { pRSet->GetFieldValue(1, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list2.insert(list2.end(), strFieldValue); } else { list2.insert(list2.end(), ""); } if( !pRSet->IsFieldNull(2) ) { pRSet->GetFieldValue(2, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list3.insert(list3.end(), strFieldValue); } else { list3.insert(list3.end(), ""); } if( !pRSet->IsFieldNull(3) ) { pRSet->GetFieldValue(3, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list4.insert(list4.end(), strFieldValue); } else { list4.insert(list4.end(), ""); } if( !pRSet->IsFieldNull(4) ) { pRSet->GetFieldValue(4, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list5.insert(list5.end(), strFieldValue); } else { list5.insert(list5.end(), ""); } if( !pRSet->IsFieldNull(5) ) { pRSet->GetFieldValue(5, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list6.insert(list6.end(), strFieldValue); } else { list6.insert(list6.end(), ""); } if( !pRSet->IsFieldNull(6) ) { pRSet->GetFieldValue(6, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list7.insert(list7.end(), strFieldValue); } else { list7.insert(list7.end(), ""); } if( !pRSet->IsFieldNull(7) ) { pRSet->GetFieldValue(7, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list8.insert(list8.end(), strFieldValue); } else { list8.insert(list8.end(), ""); } if( !pRSet->IsFieldNull(8) ) { pRSet->GetFieldValue(8, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list9.insert(list9.end(), strFieldValue); } else { list9.insert(list9.end(), ""); } } pRSet->MoveNext(); }// end for( int i = 0; i < nRecordCount; i++ ) if( pRSet ) { delete pRSet; pRSet = NULL; } return nCount; } } catch (_com_error &e) { if( pRSet ) { delete pRSet; pRSet = NULL; } //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return -1; } if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } int GetFieldValueList13(char *pSql,list& list1,list& list2,list& list3,list& list4,list& list5,list& list6, list& list7,list& list8,list& list9,list& list10,list& list11,list& list12,list& list13) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; CString strID; CADORecordset* pRSet = NULL; INT iRetCode = 0; int nCount = 0; _variant_t vtFieldValue; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { pRSet = new CADORecordset(g_pADODatabase); if (NULL == pRSet) { return -1; } //sprintf(strSQLText, "select max(id) as maxid from t_var_status"); iRetCode = pRSet->Open(pSql, CADORecordset::openQuery); if (iRetCode == 0) { delete pRSet; pRSet = NULL; return -1; } nCount = pRSet->GetRecordCount(); if (nCount == 0) { if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } for( int i = 0; i < nCount; i++ ) { if( pRSet->GetFieldCount() >= 13 ) { if( !pRSet->IsFieldNull(0) ) { pRSet->GetFieldValue(0, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list1.insert(list1.end(), strFieldValue); } else { list1.insert(list1.end(), ""); } if( !pRSet->IsFieldNull(1) ) { pRSet->GetFieldValue(1, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list2.insert(list2.end(), strFieldValue); } else { list2.insert(list2.end(), ""); } if( !pRSet->IsFieldNull(2) ) { pRSet->GetFieldValue(2, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list3.insert(list3.end(), strFieldValue); } else { list3.insert(list3.end(), ""); } if( !pRSet->IsFieldNull(3) ) { pRSet->GetFieldValue(3, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list4.insert(list4.end(), strFieldValue); } else { list4.insert(list4.end(), ""); } if( !pRSet->IsFieldNull(4) ) { pRSet->GetFieldValue(4, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list5.insert(list5.end(), strFieldValue); } else { list5.insert(list5.end(), ""); } if( !pRSet->IsFieldNull(5) ) { pRSet->GetFieldValue(5, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list6.insert(list6.end(), strFieldValue); } else { list6.insert(list6.end(), ""); } if( !pRSet->IsFieldNull(6) ) { pRSet->GetFieldValue(6, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list7.insert(list7.end(), strFieldValue); } else { list7.insert(list7.end(), ""); } if( !pRSet->IsFieldNull(7) ) { pRSet->GetFieldValue(7, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list8.insert(list8.end(), strFieldValue); } else { list8.insert(list8.end(), ""); } if( !pRSet->IsFieldNull(8) ) { pRSet->GetFieldValue(8, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list9.insert(list9.end(), strFieldValue); } else { list9.insert(list9.end(), ""); } if( !pRSet->IsFieldNull(9) ) { pRSet->GetFieldValue(9, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list10.insert(list10.end(), strFieldValue); } else { list10.insert(list10.end(), ""); } if( !pRSet->IsFieldNull(10) ) { pRSet->GetFieldValue(10, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list11.insert(list11.end(), strFieldValue); } else { list11.insert(list11.end(), ""); } if( !pRSet->IsFieldNull(11) ) { pRSet->GetFieldValue(11, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list12.insert(list12.end(), strFieldValue); } else { list12.insert(list12.end(), ""); } if( !pRSet->IsFieldNull(12) ) { pRSet->GetFieldValue(12, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list13.insert(list13.end(), strFieldValue); } else { list13.insert(list13.end(), ""); } } pRSet->MoveNext(); }// end for( int i = 0; i < nRecordCount; i++ ) if( pRSet ) { delete pRSet; pRSet = NULL; } return nCount; } } catch (_com_error &e) { if( pRSet ) { delete pRSet; pRSet = NULL; } //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return -1; } if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } int GetFieldValueList30(char *pSql,list& list1,list& list2,list& list3,list& list4,list& list5,list& list6, list& list7,list& list8,list& list9,list& list10,list& list11,list& list12,list& list13 ,list& list14,list& list15,list& list16,list& list17,list& list18,list& list19,list& list20 ,list& list21,list& list22,list& list23,list& list24,list& list25 ,list& list26,list& list27,list& list28,list& list29,list& list30) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; CString strID; CADORecordset* pRSet = NULL; INT iRetCode = 0; int nCount = 0; _variant_t vtFieldValue; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { pRSet = new CADORecordset(g_pADODatabase); if (NULL == pRSet) { return -1; } //sprintf(strSQLText, "select max(id) as maxid from t_var_status"); iRetCode = pRSet->Open(pSql, CADORecordset::openQuery); if (iRetCode == 0) { delete pRSet; pRSet = NULL; return -1; } nCount = pRSet->GetRecordCount(); if (nCount == 0) { if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } for( int i = 0; i < nCount; i++ ) { if( pRSet->GetFieldCount() >= 30 ) { if( !pRSet->IsFieldNull(0) ) { pRSet->GetFieldValue(0, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list1.insert(list1.end(), strFieldValue); } else { list1.insert(list1.end(), ""); } if( !pRSet->IsFieldNull(1) ) { pRSet->GetFieldValue(1, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list2.insert(list2.end(), strFieldValue); } else { list2.insert(list2.end(), ""); } if( !pRSet->IsFieldNull(2) ) { pRSet->GetFieldValue(2, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list3.insert(list3.end(), strFieldValue); } else { list3.insert(list3.end(), ""); } if( !pRSet->IsFieldNull(3) ) { pRSet->GetFieldValue(3, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list4.insert(list4.end(), strFieldValue); } else { list4.insert(list4.end(), ""); } if( !pRSet->IsFieldNull(4) ) { pRSet->GetFieldValue(4, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list5.insert(list5.end(), strFieldValue); } else { list5.insert(list5.end(), ""); } if( !pRSet->IsFieldNull(5) ) { pRSet->GetFieldValue(5, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list6.insert(list6.end(), strFieldValue); } else { list6.insert(list6.end(), ""); } if( !pRSet->IsFieldNull(6) ) { pRSet->GetFieldValue(6, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list7.insert(list7.end(), strFieldValue); } else { list7.insert(list7.end(), ""); } if( !pRSet->IsFieldNull(7) ) { pRSet->GetFieldValue(7, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list8.insert(list8.end(), strFieldValue); } else { list8.insert(list8.end(), ""); } if( !pRSet->IsFieldNull(8) ) { pRSet->GetFieldValue(8, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list9.insert(list9.end(), strFieldValue); } else { list9.insert(list9.end(), ""); } if( !pRSet->IsFieldNull(9) ) { pRSet->GetFieldValue(9, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list10.insert(list10.end(), strFieldValue); } else { list10.insert(list10.end(), ""); } if( !pRSet->IsFieldNull(10) ) { pRSet->GetFieldValue(10, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list11.insert(list11.end(), strFieldValue); } else { list11.insert(list11.end(), ""); } if( !pRSet->IsFieldNull(11) ) { pRSet->GetFieldValue(11, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list12.insert(list12.end(), strFieldValue); } else { list12.insert(list12.end(), ""); } if( !pRSet->IsFieldNull(12) ) { pRSet->GetFieldValue(12, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list13.insert(list13.end(), strFieldValue); } else { list13.insert(list13.end(), ""); } if( !pRSet->IsFieldNull(13) ) { pRSet->GetFieldValue(13, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list14.insert(list14.end(), strFieldValue); } else { list14.insert(list14.end(), ""); } if( !pRSet->IsFieldNull(14) ) { pRSet->GetFieldValue(14, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list15.insert(list15.end(), strFieldValue); } else { list15.insert(list15.end(), ""); } if( !pRSet->IsFieldNull(15) ) { pRSet->GetFieldValue(15, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list16.insert(list16.end(), strFieldValue); } else { list16.insert(list16.end(), ""); } if( !pRSet->IsFieldNull(16) ) { pRSet->GetFieldValue(16, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list17.insert(list17.end(), strFieldValue); } else { list17.insert(list17.end(), ""); } if( !pRSet->IsFieldNull(17) ) { pRSet->GetFieldValue(17, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list18.insert(list18.end(), strFieldValue); } else { list18.insert(list18.end(), ""); } if( !pRSet->IsFieldNull(18) ) { pRSet->GetFieldValue(18, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list19.insert(list19.end(), strFieldValue); } else { list19.insert(list19.end(), ""); } if( !pRSet->IsFieldNull(19) ) { pRSet->GetFieldValue(19, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list20.insert(list20.end(), strFieldValue); } else { list20.insert(list20.end(), ""); } if( !pRSet->IsFieldNull(20) ) { pRSet->GetFieldValue(20, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list21.insert(list21.end(), strFieldValue); } else { list21.insert(list21.end(), ""); } if( !pRSet->IsFieldNull(21) ) { pRSet->GetFieldValue(21, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list22.insert(list22.end(), strFieldValue); } else { list22.insert(list22.end(), ""); } if( !pRSet->IsFieldNull(22) ) { pRSet->GetFieldValue(22, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list23.insert(list23.end(), strFieldValue); } else { list23.insert(list23.end(), ""); } if( !pRSet->IsFieldNull(23) ) { pRSet->GetFieldValue(23, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list24.insert(list24.end(), strFieldValue); } else { list24.insert(list24.end(), ""); } if( !pRSet->IsFieldNull(24) ) { pRSet->GetFieldValue(24, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list25.insert(list25.end(), strFieldValue); } else { list25.insert(list25.end(), ""); } if( !pRSet->IsFieldNull(25) ) { pRSet->GetFieldValue(25, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list26.insert(list26.end(), strFieldValue); } else { list26.insert(list26.end(), ""); } if( !pRSet->IsFieldNull(26) ) { pRSet->GetFieldValue(26, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list27.insert(list27.end(), strFieldValue); } else { list27.insert(list27.end(), ""); } if( !pRSet->IsFieldNull(27) ) { pRSet->GetFieldValue(27, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list28.insert(list28.end(), strFieldValue); } else { list28.insert(list28.end(), ""); } if( !pRSet->IsFieldNull(28) ) { pRSet->GetFieldValue(28, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list29.insert(list29.end(), strFieldValue); } else { list29.insert(list29.end(), ""); } if( !pRSet->IsFieldNull(29) ) { pRSet->GetFieldValue(29, vtFieldValue); string strFieldValue = string((char*)(_bstr_t)vtFieldValue); list30.insert(list30.end(), strFieldValue); } else { list30.insert(list30.end(), ""); } } pRSet->MoveNext(); }// end for( int i = 0; i < nRecordCount; i++ ) if( pRSet ) { delete pRSet; pRSet = NULL; } return nCount; } } catch (_com_error &e) { if( pRSet ) { delete pRSet; pRSet = NULL; } //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return -1; } if( pRSet ) { delete pRSet; pRSet = NULL; } return 0; } //更新变量是否要SNMP发送 INT UpdateVarSnmpStatus( int nID, bool bStatus ) { CHAR strMsg[MAX_MSG_LENGTH + 1] = ""; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; INT iRetCode = 0; try { if (g_pADODatabase != NULL && g_pADODatabase->IsOpen()) { sprintf(strSQLText, "update t_dev_variant set boolreserved4 = \'%d\' where id = %d ",bStatus, nID); iRetCode = g_pADODatabase->Execute(strSQLText); } } catch (_com_error &e) { //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage()); //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg)); return 0; } return iRetCode; }