| create table Module_Tbl_Monitor ( ExeName varchar(5), //被监控程序名称 EnterTime varchar(20) //监控时间 ) insert into Module_tbl_monitor values('Exe1','2005-12-28 14:00:00')//插入一条记录,表示对Exe1程序进行监控 |
| /*************************************************************************** *Description: (全局)连接数据库 *Parameters: sSection --- 配置文件Section sName --- 配置项 sDefaultValue --- 缺省值 *Author: *Version: 1.0 *Date: 2005-3-8 17:27 *Cautions: 无 **************************************************************************/ void connectDB() { if(FAILED(m_pConnection.CreateInstance("ADODB.Connection"))) { AfxMessageBox("Create Instance failed!"); } try { m_pConnection->Open("DSN=??;UID=sa;PWD=??","","",-1);//数据库连接串 } catch(_com_error e) { //char mybuf[10240]; //wsprintf(mybuf,"Description = '%s'\n",(char*)e.Description()); AfxMessageBox("Connect to database error!"); } } /*************************************************************************** *Description: 从数据库中获取监控数据 *Parameters: *Author: *Version: 1.0 *Date: 2006-1-6 *Cautions: 无 **************************************************************************/ void CClientSocketDlg::getData() { m_pRecordset.CreateInstance(__uuidof(Recordset)); m_pRecordset->Open("select * from Module_Tbl_Monitor", m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); m_pRecordset->MoveFirst(); _variant_t Holder; int iNum = 1; CString machineName; CString sTime = ""; while(!m_pRecordset->adoEOF) { …….. //如果时间没变,向Server发送告警信息 } |
| void CServerSocketDlg::SendSMS(CString sSMSText) { if(!iOnOrOff) { return; } if(m_msComm.GetPortOpen()) //如果串口是打开的,则先关闭串口 { m_msComm.SetPortOpen(FALSE); } m_msComm.SetCommPort(1); //选择COM1 m_msComm.SetInBufferSize(1024); //接收缓冲区 m_msComm.SetOutBufferSize(1024);//发送缓冲区 m_msComm.SetInputLen(0);//设置当前接收区数据长度为0,表示全部读取 m_msComm.SetInputMode(1);//以二进制方式读写数据 m_msComm.SetRThreshold(1);//接收缓冲区有1个及1个以上字符时,将引发接收数据的OnComm事件 m_msComm.SetSettings("9600,n,8,1");//波特率9600无检验位,8个数据位,1个停止位 if(!m_msComm.GetPortOpen())//如果串口没有打开则打开 m_msComm.SetPortOpen(TRUE);//打开串口 else m_msComm.SetOutBufferCount(0); //通过AT指令发送SMS if(m_msComm.GetPortOpen()) { CString sReceiver; CString m_strTXData; m_strTXData = "AT+CMGF=1\r\n"; m_msComm.SetOutput(COleVariant(m_strTXData));//发送数据 for(int i = 0; i < sReceiverArr.GetSize(); i++) { sReceiver = sReceiverArr[i]; m_strTXData="AT+CMGS=" + sReceiver + " \r\n"; Sleep(2000); m_msComm.SetOutput(COleVariant(m_strTXData));//发送数据 m_strTXData = sSMSText + " \x01a"; Sleep(2000); m_msComm.SetOutput(COleVariant(m_strTXData));//发送数据 Sleep(2000); } } } |


关注此文的读者还看过: