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

📄 database.cpp

📁 数据库的定义 大家看看把 提点意见
💻 CPP
📖 第 1 页 / 共 3 页
字号:
int CDataBase::HexToInt(char c)
{
	int num;
	switch(c) {
	case '0':
		num = 0;
		break;
	case '1':
		num = 1;
		break;
	case '2':
		num = 2;
		break;
	case '3':
		num = 3;
		break;
	case '4':
		num = 4;
		break;
	case '5':
		num = 5;
		break;
	case '6':
		num = 6;
		break;
	case '7':
		num = 7;
		break;
	case '8':
		num = 8;
		break;
	case '9':
		num = 9;
		break;
	case 'A':
		num = 10;
		break;
	case 'B':
		num = 11;
		break;
	case 'C':
		num = 12;
		break;
	case 'D':
		num = 13;
		break;
	case 'E':
		num = 14;
		break;
	case 'F':
		num = 15;
		break;
	default:
		num = -1;
		break;
	}
	return num;	
}

BOOL CDataBase::AddCipherKey(char *pID,char *pubkey, char *prikey)//完成CipherKey(pubkey,prikey)信息插入authen表
{
	

//	CString str;
//    CTime tm;
//    tm=CTime::GetCurrentTime();//获取系统时间
//    str=tm.Format("%Y年%m月%d日%X");
////    AfxMessageBox(str);
	time_t   ltime;  
	time(&ltime);  

	CString sql;
	InitDataBase();
	try
	{ 
		
		sql.Format("insert into authen (PeerID,PublicKey,PrivteKey,RegTime) values('%s','%s','%s','%ld')",pID,pubkey,prikey,ltime); 
		BSTR bSql = sql.AllocSysString();
		if(!Excute(bSql))
			return FALSE;
	}
	catch(_com_error e)   
	{   
		AfxMessageBox(e.Description());   
	}   
//	m_pConnection->Close();
	return TRUE;

}

CString CDataBase::InquiryPubkey(char *pID)//查询公钥成功返回pubkey
{
	CString sql;
	
	InitDataBase();

	_variant_t vPubkey;

	CString pubkey;
	try
	{
		sql.Format("select * from authen where PeerID='%s'",pID); 
		BSTR bSql = sql.AllocSysString();
		
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open(bSql,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
		if(!m_pRecordset->adoEOF)
		{
			vPubkey	=	m_pRecordset->GetCollect("PublicKey");
			pubkey=(LPCTSTR)(_bstr_t)vPubkey;
			return pubkey;
		}
		
	}
	catch(_com_error e)   
	{   
		AfxMessageBox(e.Description());   
	}   
//	m_pConnection->Close();
	return pubkey;

}

CString CDataBase::InquiryPrikey(char *pID)//查询私钥
{
	CString sql;
	
	InitDataBase();

	_variant_t vPubkey;

	CString prikey;
	try
	{
		sql.Format("select * from authen where PeerID='%s'",pID); 
		BSTR bSql = sql.AllocSysString();
		
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open(bSql,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
		if(!m_pRecordset->adoEOF)
		{
			vPubkey	=	m_pRecordset->GetCollect("PrivteKey");
			prikey=(LPCTSTR)(_bstr_t)vPubkey;
			return prikey;
		}
		
	}
	catch(_com_error e)   
	{   
		AfxMessageBox(e.Description());   
	}   
//	m_pConnection->Close();
	return prikey;

}

BOOL CDataBase::DelPubPriKey(char *pID)//删除公私钥对
{
	CString sql;
	
//	InitDataBase();
	try
	{ 
		sql.Format("delete from authen where PeerID='%s'",pID); 
		BSTR bSql = sql.AllocSysString();
		if(!Excute(bSql))
			return FALSE;
	}
	catch(_com_error e)   
	{   
		AfxMessageBox(e.Description());   
	}   
//	m_pConnection->Close();
	return TRUE;

}

BOOL CDataBase::UpdataPubPriKey(char *pID, char *pubkey, char *prikey)//更新pubkey,prikey;
{
	
//	CString str;
//    CTime tm;
//    tm=CTime::GetCurrentTime();//获取系统时间
//    str=tm.Format("%Y年%m月%d日%X");
	time_t   ltime;  
	time(&ltime); 
	CString sql;
	
	InitDataBase();
	try
	{ 
		sql.Format("update authen set publickey='%s',privtekey='%s',UpdataTime='%ld' where peerid='%s'",pubkey,prikey,ltime,pID); 
		BSTR bSql = sql.AllocSysString();
		if(!Excute(bSql))
			return FALSE;
	}
	catch(_com_error e)   
	{   
		AfxMessageBox(e.Description());   
	}   
	m_pConnection->Close();
	return TRUE;

}

CString CDataBase::VariantToCString(VARIANT var)
{
	CString   strValue;  
	_variant_t   var_t;  
	_bstr_t   bst_t;  
	time_t   cur_time;  
	CTime   time_value;  
	COleCurrency   var_currency;  
	switch(var.vt)  
	{  
	case   VT_EMPTY:  
		strValue=_T("");  
		break;  
	case   VT_UI1:  
		strValue.Format("%d",var.bVal);  
		break;  
	case   VT_I2:  
		strValue.Format("%d",var.iVal);  
		break;  
	case   VT_I4:  
		strValue.Format("%d",var.lVal);  
		break;  
	case   VT_R4:  
		strValue.Format("%f",var.fltVal);  
		break;  
	case   VT_R8:  
		strValue.Format("%f",var.dblVal);  
		break;  
	case   VT_CY:  
		var_currency=var;  
		strValue=var_currency.Format(0);  
		break;  
	case   VT_BSTR:  
		var_t=var;  
		bst_t=var_t;  
		strValue.Format("%s",(const   char*   )bst_t);  
		break;  
	case   VT_NULL:  
		strValue=_T("");  
		break;  
	case   VT_DATE:  
		cur_time=var.date;  
		time_value=cur_time;  
		strValue=time_value.Format("%A,%B,%d,%Y");  
		break;  
	case   VT_BOOL:  
		strValue.Format("%d",var.boolVal);  
		break;  
	default:  
		strValue=_T("");  
		break;  
	}  
	return   strValue;   

}

int CDataBase::InquiryTrustValue(CString pid)
{
	CString sql;
	
	InitDataBase();

	_variant_t vTrustValue;

	int trust_value=0;
	try
	{
		sql.Format("select * from peer where pid='%s'",pid); 
		BSTR bSql = sql.AllocSysString();
		
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open(bSql,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
		if(!m_pRecordset->adoEOF)
		{
			vTrustValue	=	m_pRecordset->GetCollect("TrustValue");
			trust_value=vTrustValue.iVal;
			return trust_value;
		}
		
	}
	catch(_com_error e)   
	{   
		AfxMessageBox(e.Description());   
	}   
//	m_pConnection->Close();
	return trust_value;


}

BOOL CDataBase::UpdataTrustValue(CString pid, int trustvalue)
{
	CString sql;
	
	InitDataBase();

	_variant_t vTrustValue;

	int trust_value=0;
	try
	{
		sql.Format("select * from peer where pid='%s'",pid); 
		BSTR bSql = sql.AllocSysString();
		
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open(bSql,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
		if(!m_pRecordset->adoEOF)
		{
			vTrustValue	=	m_pRecordset->GetCollect("TrustValue");
			trust_value=vTrustValue.iVal;
		}
		
	}
	catch(_com_error e)   
	{   
		AfxMessageBox(e.Description());   
	}   
	if(0==trust_value)
	{
		try
		{ 
			sql.Format("update peer set TrustValue=%d where pid='%s'",trustvalue,pid);
			BSTR bSql = sql.AllocSysString();
			if(!Excute(bSql))
				return FALSE;
		}
		catch(_com_error e)   
		{   
			AfxMessageBox(e.Description());   
		}   
	}
	else
	{
		try
		{ 
			sql.Format("update peer set TrustValue=%d where pid='%s'",(trustvalue+trust_value)/2,pid);
			BSTR bSql = sql.AllocSysString();
			if(!Excute(bSql))
				return FALSE;
		}
		catch(_com_error e)   
		{   
			AfxMessageBox(e.Description());   
		}   

	}
//	m_pConnection->Close();
	return TRUE;

}

CString CDataBase::CountVirusValue(char *fileid)
{
	CString sql;
	int sum_all=0;
	int vir_num=0;
//	_variant_t vCount_all;
	
	InitDataBase();
	try
	{
		sql.Format("select * from filepeer where fid='%s' and (virusid_1=1 or virusid_2=1)",fileid); 
		BSTR bSql = sql.AllocSysString();
		
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open(bSql,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
		
		while(!m_pRecordset->adoEOF)
		{
			vir_num++;
			m_pRecordset->MoveNext();
		}
//			m_pRecordset->Close();
//			m_pConnection->Close();
		sql.Format("select * from filepeer where fid='%s'",fileid); 
		bSql = sql.AllocSysString();
		
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open(bSql,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
		
		while(!m_pRecordset->adoEOF)
		{
			sum_all++;
			m_pRecordset->MoveNext();
		}
		
	}
	catch(_com_error e)   
	{   

		AfxMessageBox(e.Description());   
		
	}   
//	m_pConnection->Close();
	CString str;
	str.Format("%d",vir_num);
	sql.Format("%d",sum_all);
	str+='/';
	str+=sql;
	return str;


}

BOOL CDataBase::AddVirusInfo(VirusInfo vInfo)
{
	CString sql;
	time_t   ltime;  
	time(&ltime);  

	InitDataBase();
	try
	{ //完成登陆信息(PeerID,IP,PORT)数据库表信息的插入peer表
		
		sql.Format("insert into filepeer (fid,pid,VirusID_1,VirusID_2,VirusID,VirusName,VirusType,FindTime) values('%s','%s',%d,%d,%d,'%s',%d,%ld)",vInfo.fileID,vInfo.PID,vInfo.VirusID_1,vInfo.VirusID_2,vInfo.VirusID,vInfo.VirusName,vInfo.VirusType,ltime); 
		BSTR bSql = sql.AllocSysString();
		if(!Excute(bSql))
			return FALSE;
	}
	catch(_com_error e)   
	{   
		AfxMessageBox(e.Description());   
	}   
	m_pConnection->Close();
	return TRUE;

}

BOOL CDataBase::InquiryPIDtrust(CString ip, PeerIDtrust *ptrust)
{
	CString sql;

	_variant_t vTrustValue;
	_variant_t vPid;
	InitDataBase();
	try
	{
		sql.Format("select * from peer where status=1 and ip='%s'",ip); 
		BSTR bSql = sql.AllocSysString();
		
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open(bSql,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
		if(!m_pRecordset->adoEOF)
		{
			vPid	=	m_pRecordset->GetCollect("pid");
			vTrustValue	= m_pRecordset->GetCollect("TrustValue");
			ptrust->val=vTrustValue.lVal;
			strcpy(ptrust->Pid,(LPCTSTR)(_bstr_t)vPid);
		
			return TRUE;
		}		
		
	}
	catch(_com_error e)   
	{   
		AfxMessageBox(e.Description());   
	}   
//	m_pConnection->Close();
	return FALSE;
	

}

⌨️ 快捷键说明

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