⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 brow.cpp

📁 入侵检测系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	{	m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open("SELECT * FROM ids",_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
		m_bSuccess = TRUE;
     	while(!m_pRecordset->rsEOF)
		{   
			vEventCode = m_pRecordset->GetCollect("EventCode");
			vEventName = m_pRecordset->GetCollect("EventName");
			vEventProtocol = m_pRecordset->GetCollect("EventProtocol");
			vEventDefinition = m_pRecordset->GetCollect("EventDefinition");
            vEventDescription = m_pRecordset->GetCollect("EventDescription");
			vAlertType = m_pRecordset->GetCollect("AlertType");
			vEventLevel = m_pRecordset->GetCollect("EventLevel");
			nItem=m_ListCtrl.InsertItem(0xffff,(_bstr_t)vEventCode);
			m_ListCtrl.SetItem(nItem,1,1,(_bstr_t)vEventName,NULL,0,0,0);
			m_ListCtrl.SetItem(nItem,2,1,(_bstr_t)vEventProtocol,NULL,0,0,0);
			m_ListCtrl.SetItem(nItem,3,1,(_bstr_t)vEventDefinition,NULL,0,0,0);
			m_ListCtrl.SetItem(nItem,4,1,(_bstr_t)vEventDescription,NULL,0,0,0);
			m_ListCtrl.SetItem(nItem,5,1,(_bstr_t)vAlertType,NULL,0,0,0);
			m_ListCtrl.SetItem(nItem,6,1,(_bstr_t)vEventLevel,NULL,0,0,0);

			m_pRecordset->MoveNext();
		}
	}
	catch(_com_error e)///捕捉异常
	{
		AfxMessageBox("读取数据库失败!");///显示错误信息
	}
	*/
	
	
	
	/*LONG lStyle = m_ListCtrl.SendMessage
		(LVM_GETEXTENDEDLISTVIEWSTYLE);
	lStyle |= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | 
		LVS_EX_HEADERDRAGDROP;
	m_ListCtrl.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0,
		(LPARAM)lStyle);
	LV_COLUMN lvc;
	lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH /*| LVCF_FMT*/;
	
	/*lvc.iSubItem = 0;
	lvc.pszText = (char *)"事件代码";
	lvc.cx = 80;
	m_ListCtrl.InsertColumn(0,&lvc);
	
	lvc.iSubItem = 1;
	lvc.pszText = (char *)"事件名称";
	lvc.cx = 80;
	m_ListCtrl.InsertColumn(1,&lvc);
	
	lvc.iSubItem = 2;
	lvc.pszText = (char *)"事件协议";
	lvc.cx = 80;
	m_ListCtrl.InsertColumn(2,&lvc);
	
	lvc.iSubItem = 3;
	lvc.pszText = (char *)"事件描述";
	lvc.cx =80;
	m_ListCtrl.InsertColumn(3,&lvc);
	
	lvc.iSubItem = 4;
	lvc.pszText = (char *)"事件说明";
	lvc.cx = 80;
	m_ListCtrl.InsertColumn(4,&lvc);

	lvc.iSubItem = 5;
	lvc.pszText = (char *)"响应方式";
	lvc.cx = 80;
	m_ListCtrl.InsertColumn(5,&lvc);

	lvc.iSubItem = 6;
	lvc.pszText = (char *)"入侵级别";
	lvc.cx = 80;
	m_ListCtrl.InsertColumn(6,&lvc);*/
  
	

/*	m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
    //m_ListCtrl.SetBkColor(RGB(0,255,255));
    m_ListCtrl.SetTextColor(RGB(0,0,255));
	return TRUE; */ // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
	
	// 使用ADO创建数据库记录集

	m_pRecordset.CreateInstance(__uuidof(Recordset));
    try
	{   
		m_pRecordset->Open("SELECT * FROM ids",_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
   return TRUE;
}

void CBrow::OnIdsrule() 
{  
	// TODO: Add your command handler code here

}
//DEL void CBrow::SaveData()
//DEL {
//DEL /*	if(!m_pRecordset->rsEOF && m_nCurrentSel >= 0 && m_bAutoSave)
//DEL 	{ 
//DEL         vEventCode =m_code;
//DEL 		vEventName = m_name;
//DEL 		vEventProtocol=m_protocol;
//DEL 		vEventDefinition=m_definition;
//DEL 		vEventDescription=m_description;
//DEL 		vAlertType=m_alert;
//DEL 		vEventLevel=m_level;
//DEL 	    m_pRecordset->PutCollect("EventCode",vEventCode);
//DEL 		m_pRecordset->PutCollect("EventName",vEventName);
//DEL         m_pRecordset->PutCollect("EventProtocol",vEventProtocol);
//DEL 		m_pRecordset->PutCollect("EventDefinition",vEventDefinition);
//DEL 		m_pRecordset->PutCollect("EventDescription",vEventDescription);
//DEL 		m_pRecordset->PutCollect("AlertType",vAlertType);
//DEL 		m_pRecordset->PutCollect("EventLevel",vEventLevel);
//DEL 		m_ListCtrl.SetItem(m_nCurrentSel,0,LVIF_TEXT,(_bstr_t)vEventCode,NULL,0,0,0);
//DEL 		m_ListCtrl.SetItem(m_nCurrentSel,1,LVIF_TEXT,(_bstr_t)vEventName,NULL,0,0,0);
//DEL 		m_ListCtrl.SetItem(m_nCurrentSel,2,LVIF_TEXT,(_bstr_t)vEventProtocol,NULL,0,0,0);
//DEL 		m_ListCtrl.SetItem(m_nCurrentSel,3,LVIF_TEXT,(_bstr_t)vEventDefinition,NULL,0,0,0);
//DEL 		m_ListCtrl.SetItem(m_nCurrentSel,4,LVIF_TEXT,(_bstr_t)vEventDescription,NULL,0,0,0);
//DEL 		m_ListCtrl.SetItem(m_nCurrentSel,5,LVIF_TEXT,(_bstr_t)vAlertType,NULL,0,0,0);
//DEL 		m_ListCtrl.SetItem(m_nCurrentSel,6,LVIF_TEXT,(_bstr_t)vEventLevel,NULL,0,0,0);
//DEL 	}*/
//DEL }

//DEL void CBrow::LoadData()
//DEL {  /* m_pRecordset->Move(m_nCurrentSel,_variant_t((long)adBookmarkFirst));
//DEL 	vEventCode = m_pRecordset->GetCollect("EventCode");
//DEL 	vEventName = m_pRecordset->GetCollect("EventName");
//DEL 	vEventProtocol=m_pRecordset->GetCollect("EventProtocol");
//DEL     vEventDefinition=m_pRecordset->GetCollect("EventDefinition");
//DEL 	vEventDescription = m_pRecordset->GetCollect("EventDescription");
//DEL     vAlertType = m_pRecordset->GetCollect("AlertType");
//DEL 	vEventLevel = m_pRecordset->GetCollect("EventLevel");
//DEL     m_code =(LPCTSTR)(_bstr_t) vEventCode;
//DEL 	m_name =(LPCTSTR)(_bstr_t) vEventName;
//DEL     m_protocol =(LPCTSTR)(_bstr_t) vEventProtocol;
//DEL 	m_definition =(LPCTSTR)(_bstr_t) vEventDefinition;
//DEL 	m_description =(LPCTSTR)(_bstr_t) vEventDescription;
//DEL 	m_alert =(LPCTSTR)(_bstr_t) vAlertType;
//DEL 	m_level =(LPCTSTR)(_bstr_t) vEventLevel;
//DEL 	
//DEL     UpdateData(FALSE);
//DEL  */
//DEL }
void CBrow::OnButtonRead() 
{
	// TODO: Add your control notification handler code here
	_variant_t var;
	CString code,name,protocol,definition,description,alert,level;

	// 清空列表框
	m_AccessList.ResetContent();
	code=name=protocol=definition=description=alert=level="";
	try
	{
		if(!m_pRecordset->BOF)
			m_pRecordset->MoveFirst();
		else
		{
			AfxMessageBox("记录为空!");
			return;
		}

		// 读入库中各字段并加入列表框中
		while(!m_pRecordset->rsEOF)
		{
			var = m_pRecordset->GetCollect("EventCode");
			if(var.vt != VT_NULL)
				code = (LPCSTR)_bstr_t(var);
			var = m_pRecordset->GetCollect("EventName");
			if(var.vt != VT_NULL)
				name = (LPCSTR)_bstr_t(var);
			var = m_pRecordset->GetCollect("EventProtocol");
			if(var.vt != VT_NULL)
				protocol = (LPCSTR)_bstr_t(var);

			var = m_pRecordset->GetCollect("EventDefinition");
			if(var.vt != VT_NULL)
				definition = (LPCSTR)_bstr_t(var);

			var = m_pRecordset->GetCollect("EventDescription");
			if(var.vt != VT_NULL)
				description = (LPCSTR)_bstr_t(var);

			var = m_pRecordset->GetCollect("AlertType");
			if(var.vt != VT_NULL)
				alert= (LPCSTR)_bstr_t(var);

            var = m_pRecordset->GetCollect("EventLevel");
			if(var.vt != VT_NULL)
				level= (LPCSTR)_bstr_t(var);
			m_AccessList.AddString( code + " --> "+name+"-->"+protocol+"-->"+definition+"-->"+description+"-->"+alert+"-->"+level );

			m_pRecordset->MoveNext();
		}

		// 默认列表指向第一项,同时移动记录指针并显示
		m_AccessList.SetCurSel(0);
		OnSelchangeList();
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
}
BOOL CBrow::DestroyWindow() 
{
	// TODO: Add your specialized code here and/or call the base class
	m_pRecordset->Close();
	m_pRecordset = NULL;
	return CDialog::DestroyWindow();
}



void CBrow::OnSelchangeList() 
{
	// TODO: Add your control notification handler code here
	int curSel = m_AccessList.GetCurSel();
	_variant_t  var,varIndex;
	if(curSel < 0)
		return;
	try
	{
		// 先将指针移向第一条记录,然后就可以相对第一条记录来随意移动记录指针
		m_pRecordset->MoveFirst();
		m_pRecordset->Move(long(curSel));
		
			var = m_pRecordset->GetCollect("EventCode");
	if(var.vt != VT_NULL)
 			m_code = (LPCSTR)_bstr_t(var);
	var = m_pRecordset->GetCollect("EventName");
	if(var.vt != VT_NULL)
			m_name = (LPCSTR)_bstr_t(var);
 		var = m_pRecordset->GetCollect("EventProtocol");
 		if(var.vt != VT_NULL)
 			m_protocol = (LPCSTR)_bstr_t(var);
 		var = m_pRecordset->GetCollect("EventDefinition");
		if(var.vt != VT_NULL)
			m_definition = (LPCSTR)_bstr_t(var);
 		var = m_pRecordset->GetCollect("EventDescription");
		if(var.vt != VT_NULL)
 			m_description= (LPCSTR)_bstr_t(var);
		var = m_pRecordset->GetCollect("AlertType");
		if(var.vt != VT_NULL)
 			m_alert = (LPCSTR)_bstr_t(var);
 		var = m_pRecordset->GetCollect("EventLevel");
		if(var.vt != VT_NULL)
 			m_level = (LPCSTR)_bstr_t(var);
		
		UpdateData(false);
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
		
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -