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

📄 clientinfoview.cpp

📁 用数据库控制树型控件现实内容的例子
💻 CPP
📖 第 1 页 / 共 2 页
字号:

void CClientInfoview::OnComputerDelete() 
{
	// TODO: Add your command handler code here
	POSITION pos = m_DataReport.GetFirstSelectedItemPosition();
	int nItem;
	if (pos == NULL)
	{
		TRACE0("No items were selected!\n");
		return ;
	}
	else
	{
		CComputerDelDlg dlg;
		CString s=m_DataReport.GetItemText(nItem, COMPUTERNAME_NUM ); 
		if(dlg.DoModal()!=IDOK)
			return;
		_CommandPtr Cmd1;
		Cmd1.CreateInstance( __uuidof( Command ) );
		Cmd1->ActiveConnection = m_db;
		while(pos!=NULL)
		{
			nItem = m_DataReport.GetNextSelectedItem(pos);
			s=m_DataReport.GetItemText(nItem, IP_ADDRESS_NUM ); //ComputerID
			CString sqlStr;
			sqlStr="delete from computers where IpAddress='"+s;
			sqlStr+="'";

			Cmd1->CommandText = sqlStr.AllocSysString();
			Cmd1->Execute( NULL, NULL, adCmdText );

	//		m_DataReport.DeleteItem(nItem);  //删除当前记录,这个可能有问题
			TRACE1("Item %d was selected!\n", nItem);
		}
	}
	ReFresh();

}

void CClientInfoview::OnComputerInstall() 
{
	// TODO: Add your command handler code here
	POSITION pos = m_DataReport.GetFirstSelectedItemPosition();
	int nItem;
	if (pos == NULL)
	{
		TRACE0("No items were selected!\n");
		return;
	}
	else
	{
		CMainFrame * pMain=(CMainFrame *)AfxGetMainWnd();
		while(pos!=NULL)
		{
			nItem = m_DataReport.GetNextSelectedItem(pos);
			CString s=m_DataReport.GetItemText(nItem, ISKILLINSTALLED_NUM );
			CString computerid=m_DataReport.GetItemText(nItem, 7 );
			CString IP=m_DataReport.GetItemText(nItem, IP_ADDRESS_NUM );
//			if(s.Compare("T")!=0)
			{
				pMain->m_SocketServer.InstallKill(atoi(computerid.GetBuffer(0)),IP.GetBuffer(0),pMain->m_ClientPort,pMain->m_InstallUrl.GetBuffer(0));
			}
			TRACE1("Item %d was selected!\n", nItem);
		}
	}
}

void CClientInfoview::OnComputerUninstall() 
{
	// TODO: Add your command handler code here
	POSITION pos = m_DataReport.GetFirstSelectedItemPosition();
	int nItem;
	if (pos == NULL)
	{
		TRACE0("No items were selected!\n");
		return;
	}
	else
	{
		CMainFrame * pMain=(CMainFrame *)AfxGetMainWnd();
		while(pos!=NULL)
		{
			nItem = m_DataReport.GetNextSelectedItem(pos);
			CString s=m_DataReport.GetItemText(nItem, ISKILLINSTALLED_NUM );
			CString computerid=m_DataReport.GetItemText(nItem, 7 );
			CString IP=m_DataReport.GetItemText(nItem, IP_ADDRESS_NUM );
//			if(s.Compare("T"))
			{
//				continue;
//			AfxMessageBox("不可卸载,因为还没有安装");
			}
//			else
			{
				pMain->m_SocketServer.UnInstallKill(IP.GetBuffer(0),pMain->m_ClientPort,pMain->m_UnInstallUrl.GetBuffer(0));
			}
			TRACE1("Item %d was selected!\n", nItem);
		}
	}
}


void CClientInfoview::ReFresh()
{
	CMainFrame *pMain=(CMainFrame *)AfxGetMainWnd();
	HTREEITEM hTreeCurrent;//当前和父级项句柄
	hTreeCurrent=pMain->m_ClientTreeview->m_ClientTree.GetSelectedItem ();
	int GroupID=pMain->m_ClientTreeview->m_ClientTree.GetItemData(hTreeCurrent);
	ShowClient(GroupID);
}

void CClientInfoview::OnComputerPopupEdit() 
{
	// TODO: Add your command handler code here
	POSITION pos = m_DataReport.GetFirstSelectedItemPosition();
	int nItem;
	if (pos == NULL)
	{
		TRACE0("No items were selected!\n");
		return;
	}
	else
	{
		nItem = m_DataReport.GetNextSelectedItem(pos);
		TRACE1("Item %d was selected!\n", nItem);
	}

	CComputerAddDlg dlg;
	CString sqlStr="select * FROM Computers where IpAddress = '"+m_DataReport.GetItemText(nItem, IP_ADDRESS_NUM );
	sqlStr+="'";
	_variant_t varSQLtcp(sqlStr);

	HRESULT hTRes;

	_RecordsetPtr m_pTreeRecordset;    //用于创建一个查询记录集
    hTRes = m_pTreeRecordset.CreateInstance(_T("ADODB.Recordset"));
	if (SUCCEEDED(hTRes))
	{
        hTRes = m_pTreeRecordset->Open(varSQLtcp,
			         _variant_t((IDispatch *)m_db,true),
					 adOpenStatic,adLockOptimistic,adCmdText);
        if(SUCCEEDED(hTRes))
        {
				TRACE(_T("连接成功!\n"));
			//------------------------------------------
				if (!(m_pTreeRecordset->adoEOF))
				{
					m_pTreeRecordset->MoveFirst();
					dlg.m_ComputerId=m_pTreeRecordset->GetCollect("ComputerId").iVal;
					dlg.m_ComputerGroupId=m_pTreeRecordset->GetCollect("ComputerGroupId").iVal;
					dlg.m_ComputerName=m_pTreeRecordset->GetCollect("ComputerName").bstrVal;
					dlg.m_IpAddress=m_pTreeRecordset->GetCollect("IpAddress").bstrVal;
					dlg.m_MacAddress=m_pTreeRecordset->GetCollect("MacAddress").bstrVal;
					dlg.m_OsType=m_pTreeRecordset->GetCollect("OsType").bstrVal;
					dlg.m_ServerPack=m_pTreeRecordset->GetCollect("ServerPack").bstrVal;
					dlg.m_IEVersion=m_pTreeRecordset->GetCollect("IEVersion").bstrVal;
					dlg.m_Langu=m_pTreeRecordset->GetCollect("Langu").bstrVal;
					dlg.m_CpuType=m_pTreeRecordset->GetCollect("CpuType").bstrVal;
					dlg.m_CpuFreq=m_pTreeRecordset->GetCollect("CpuFreq").bstrVal;
					dlg.m_Memory=m_pTreeRecordset->GetCollect("Memory").bstrVal;
					dlg.m_DiskSize=m_pTreeRecordset->GetCollect("DiskSize").bstrVal;
					dlg.m_FreeDiskSize=m_pTreeRecordset->GetCollect("FreeDiskSize").bstrVal;
					dlg.m_KillVersion=m_pTreeRecordset->GetCollect("KillVersion").bstrVal;

					dlg.m_isInstallKill=(BOOL)(bool)m_pTreeRecordset->GetCollect("isInstallKill").boolVal;
					dlg.m_isRunKill=(BOOL)(bool)m_pTreeRecordset->GetCollect("isRunKill").boolVal;
					dlg.m_isRunComputer=(BOOL)(bool)m_pTreeRecordset->GetCollect("isRunComputer").boolVal;
					dlg.m_isRegister=(BOOL)(bool)m_pTreeRecordset->GetCollect("isRegister").boolVal;
					dlg.m_Cmd_Install=(BOOL)(bool)m_pTreeRecordset->GetCollect("Cmd_Install").boolVal;
					dlg.m_Cmd_Uninstall=(BOOL)(bool)m_pTreeRecordset->GetCollect("Cmd_Uninstall").boolVal;
				}
		}
		else
			return;
	}
	else
		return;

	if(dlg.DoModal()==IDOK)
	{
		CString sqlStr;
		sqlStr="Update Computers set ComputerGroupId=?,ComputerName=?,IpAddress=?,MacAddress=?,OsType=?,ServerPack=?,IEVersion=?,Langu=?,CpuType=?,CpuFreq=?,Memory=?,DiskSize=?,FreeDiskSize=?,KillVersion=?,isInstallKill=?,isRunKill=?,isRunComputer=?,isRegister=?,Cmd_Install=?,Cmd_Uninstall=? , IpAddressNum=? ";
		sqlStr+=" where IpAddress = '"+m_DataReport.GetItemText(nItem, IP_ADDRESS_NUM );
		sqlStr+="'";
		_CommandPtr Cmd1;
		_ParameterPtr Param1,Param2,Param3,Param4,Param5,Param6,Param7,Param8,Param9,Param10,Param11,Param12,Param13,Param14,Param15,Param16,Param17,Param18,Param19,Param20,Param21,Param22;
		try
		{
			Cmd1.CreateInstance( __uuidof( Command ) );
			Cmd1->ActiveConnection = m_db;

			Cmd1->CommandText = sqlStr.AllocSysString();
			VARIANT v,bv;
			v.vt=VT_I2;
			v.iVal=dlg.m_ComputerId;

			Param1 = Cmd1->CreateParameter("ComputerId",adInteger,adParamInput,-1,v );
			v.iVal=dlg.m_ComputerGroupId;
			Param2 = Cmd1->CreateParameter("ComputerGroupId",adInteger,adParamInput,-1,v );
			Param3 = Cmd1->CreateParameter("ComputerName",adBSTR,adParamInput,-1,dlg.m_ComputerName.AllocSysString() );
			Param4 = Cmd1->CreateParameter("IpAddress",adBSTR,adParamInput,-1,dlg.m_IpAddress.AllocSysString() );
			
			v.vt=VT_UI4;
			v.ulVal=inet_addr(dlg.m_IpAddress.GetBuffer(0));
			Param22=Cmd1->CreateParameter("IpAddressNum",adInteger,adParamInput,-1,v );

			Param5 = Cmd1->CreateParameter("MacAddress",adBSTR,adParamInput,-1,dlg.m_MacAddress.AllocSysString() );
			Param6 = Cmd1->CreateParameter("OsType",adBSTR,adParamInput,-1,dlg.m_OsType.AllocSysString() );
			Param7 = Cmd1->CreateParameter("ServerPack",adBSTR,adParamInput,-1,dlg.m_ServerPack.AllocSysString() );
			Param8 = Cmd1->CreateParameter("IEVersion",adBSTR,adParamInput,-1,dlg.m_IEVersion.AllocSysString() );
			Param9 = Cmd1->CreateParameter("Langu",adBSTR,adParamInput,-1,dlg.m_Langu.AllocSysString() );
			Param10 = Cmd1->CreateParameter("CpuType",adBSTR,adParamInput,-1,dlg.m_CpuType.AllocSysString() );
			Param11 = Cmd1->CreateParameter("CpuFreq",adBSTR,adParamInput,-1,dlg.m_CpuFreq.AllocSysString() );
			Param12 = Cmd1->CreateParameter("Memory",adBSTR,adParamInput,-1,dlg.m_Memory.AllocSysString() );
			Param13 = Cmd1->CreateParameter("DiskSize",adBSTR,adParamInput,-1,dlg.m_DiskSize.AllocSysString() );
			Param14 = Cmd1->CreateParameter("FreeDiskSize",adBSTR,adParamInput,-1,dlg.m_FreeDiskSize.AllocSysString() );
			Param15 = Cmd1->CreateParameter("KillVersion",adBSTR,adParamInput,-1,dlg.m_KillVersion.AllocSysString() );
		
			bv.vt=VT_BOOL;
			bv.boolVal=(int)dlg.m_isInstallKill;
			Param16 = Cmd1->CreateParameter("isInstallKill",adBoolean,adParamInput,-1,bv );
			bv.boolVal=(int)dlg.m_isRunKill;
			Param17 = Cmd1->CreateParameter("isRunKill",adBoolean,adParamInput,-1,bv );
			bv.boolVal=(int)dlg.m_isRunComputer;
			Param18 = Cmd1->CreateParameter("isRunComputer",adBoolean,adParamInput,-1,bv );
			bv.boolVal=(int)dlg.m_isRegister;
			Param19 = Cmd1->CreateParameter("isRegister",adBoolean,adParamInput,-1,bv );
			bv.boolVal=(int)dlg.m_Cmd_Install;
			Param20 = Cmd1->CreateParameter("Cmd_Install",adBoolean,adParamInput,-1,bv );
			bv.boolVal=(int)dlg.m_Cmd_Uninstall;
			Param21 = Cmd1->CreateParameter("Cmd_Uninstall",adBoolean,adParamInput,-1,v );

			Cmd1->Parameters->Append( Param2 );
			Cmd1->Parameters->Append( Param3 );
			Cmd1->Parameters->Append( Param4 );
			Cmd1->Parameters->Append( Param5 );
			Cmd1->Parameters->Append( Param6 );
			Cmd1->Parameters->Append( Param7 );
			Cmd1->Parameters->Append( Param8 );
			Cmd1->Parameters->Append( Param9 );
			Cmd1->Parameters->Append( Param10 );
			Cmd1->Parameters->Append( Param11 );
			Cmd1->Parameters->Append( Param12 );
			Cmd1->Parameters->Append( Param13 );
			Cmd1->Parameters->Append( Param14 );
			Cmd1->Parameters->Append( Param15 );
			Cmd1->Parameters->Append( Param16 );
			Cmd1->Parameters->Append( Param17 );
			Cmd1->Parameters->Append( Param18 );
			Cmd1->Parameters->Append( Param19 );
			Cmd1->Parameters->Append( Param20 );
			Cmd1->Parameters->Append( Param21 );
			Cmd1->Parameters->Append( Param22 );
/**/
			Cmd1->CommandText = sqlStr.AllocSysString();
			Cmd1->Execute( NULL, NULL, adCmdText );
		}
		catch(...)
		{
			AfxMessageBox("修改过程中数据冲突,可能是有重复的IP地址");
		}
	}
	ReFresh();	
}

//移动计算机到另外一个组
void CClientInfoview::OnChangepareng() 
{
	// TODO: Add your command handler code here
	CComputerChangeDlg Dlg;
	POSITION pos = m_DataReport.GetFirstSelectedItemPosition();
	int nItem;
	if (pos == NULL)
	{
		TRACE0("No items were selected!\n");
		return ;
	}
	else
	{
		nItem = m_DataReport.GetNextSelectedItem(pos);
		TRACE1("Item %d was selected!\n", nItem);
	}
	CString s=m_DataReport.GetItemText(nItem, COMPUTERID_NUM ); //ComputerID

	Dlg.m_ComputerId=s;
	Dlg.m_ComputerIP=m_DataReport.GetItemText(nItem, IP_ADDRESS_NUM ); //ComputerID
	Dlg.DoModal();
}

void CClientInfoview::ChangeParent(CString ComputerID, CString IP, int targetGroupID)
{
	CString sqlStr;
	sqlStr.Format("update computers set ComputerGroupId=%d where IpAddress ='",targetGroupID);
	sqlStr+=IP+"'";

	try
	{
		POSITION pos = m_DataReport.GetFirstSelectedItemPosition();
		int nItem;
		_CommandPtr Cmd1;
		Cmd1.CreateInstance( __uuidof( Command ) );
		Cmd1->ActiveConnection = m_db;
		if (pos == NULL)
		{
			TRACE0("No items were selected!\n");
			return ;
		}
		else
		{
			while(pos != NULL)
			{
			nItem = m_DataReport.GetNextSelectedItem(pos);
			TRACE1("Item %d was selected!\n", nItem);
			m_DataReport.GetItemText(nItem, IP_ADDRESS_NUM ); //ComputerID

			sqlStr.Format("update computers set ComputerGroupId=%d where IpAddress ='",targetGroupID);
			sqlStr+=m_DataReport.GetItemText(nItem, IP_ADDRESS_NUM )+"'";

			Cmd1->CommandText = sqlStr.AllocSysString();
			Cmd1->Execute( NULL, NULL, adCmdText );
			}
		}
	}
	catch(...)
	{
	}
	ReFresh();
}

⌨️ 快捷键说明

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