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

📄 adoconnaccess.cpp

📁 带MD5摘要计算的登录程序,实现部分功能模块和部分界面
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// ADOConnAccess.cpp: implementation of the ADOConnAccess class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "FacilityMonitorSystem.h"
#include "ADOConnAccess.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

ADOConnAccess::ADOConnAccess()
{
	m_pConnection=NULL;
	m_pRecordset=NULL;
}

ADOConnAccess::~ADOConnAccess()
{
	
}

void ADOConnAccess::OnInitADOConn()
{
	try
	{
		::CoInitialize(NULL);
		m_pConnection.CreateInstance("ADODB.Connection");
		strConnect="uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=fms.mdb;";
		m_pConnection->Open(strConnect,"","",adModeUnknown);
	}
	catch(_com_error e)
	{
		AfxMessageBox("数据库连接失败"+e.Description());
	}
}

void ADOConnAccess::ExitConnect()
{
	try
	{
		if(m_pRecordset!=NULL)
		{
			m_pRecordset->raw_Close();	//can not use Close() function,why?
			m_pRecordset=NULL;
		}
		if(m_pConnection!=NULL)
		{
			m_pConnection->Close();
			m_pConnection=NULL;
		}
		::CoUninitialize();
	}
	catch(_com_error e)
	{
		AfxMessageBox("数据库断开失败");
	}
}

BOOL ADOConnAccess::PropertyRegister(CString propertyNo, CString PropertyTypeNo, CString propertyName, CTime registerDate, CTime registerTime)
{
	
	try
	{
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open("select * from Property",m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
		m_pRecordset->AddNew();
		m_pRecordset->GetFields()->GetItem("PropertyNo")->Value=(_bstr_t)propertyNo;
		m_pRecordset->GetFields()->GetItem("PropertyTypeNo")->Value=(_bstr_t)PropertyTypeNo;
		m_pRecordset->GetFields()->GetItem("PropertyName")->Value=(_bstr_t)propertyName;
		CString strDateTime=registerDate.Format("%Y-%m-%d");
		strDateTime=strDateTime+" "+registerTime.Format("%H:%M:%S");
		m_pRecordset->GetFields()->GetItem("RegisterTime")->Value=(_bstr_t)strDateTime;
		m_pRecordset->Update();
		m_pRecordset->Close();
		return TRUE;
	}
	catch(_com_error e)
	{
		return FALSE;
	}
}

BOOL ADOConnAccess::PropertyQuery(CString strPropertyQueryKey, CListCtrl *pListCtrl)
{
	try
	{
		CString sql;
		if(strPropertyQueryKey.IsEmpty())
		{
			sql.Format("select * from Property order by PropertyNo desc");
		}
		else
		{
			sql.Format("select * from Property where PropertyName='%s' order by PropertyNo desc",strPropertyQueryKey);
		}
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open((_variant_t)sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
		pListCtrl->DeleteAllItems();
		while(m_pRecordset->adoEOF==0)
		{
			pListCtrl->InsertItem(0,"");
			pListCtrl->SetItemText(0,0,(char *)(_bstr_t)m_pRecordset->GetCollect("PropertyNo"));
			pListCtrl->SetItemText(0,1,(char *)(_bstr_t)m_pRecordset->GetCollect("PropertyTypeNo"));
			pListCtrl->SetItemText(0,2,(char *)(_bstr_t)m_pRecordset->GetCollect("PropertyName"));
			pListCtrl->SetItemText(0,3,(char *)(_bstr_t)m_pRecordset->GetCollect("RegisterTime"));
			m_pRecordset->MoveNext();
		}
		m_pRecordset->Close();
		return TRUE;
	}
	catch(_com_error e)
	{
		return FALSE;
	}
}

BOOL ADOConnAccess::UserRegister(CString userNo, CString userName, CString userAddress, CString userPhone)
{
	try
	{
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open("select * from User",m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
		m_pRecordset->AddNew();
		m_pRecordset->GetFields()->GetItem("UserNo")->Value=(_bstr_t)userNo;
		m_pRecordset->GetFields()->GetItem("UserName")->Value=(_bstr_t)userName;
		m_pRecordset->GetFields()->GetItem("UserAddress")->Value=(_bstr_t)userAddress;
		m_pRecordset->GetFields()->GetItem("UserPhone")->Value=(_bstr_t)userPhone;
		m_pRecordset->Update();
		m_pRecordset->Close();
		return TRUE;
	}
	catch(_com_error e)
	{
		return FALSE;
	}
}

BOOL ADOConnAccess::UserQuery(CString userName,CListCtrl * pListCtrl )
{
	try
	{
		CString sql;
		if(userName.IsEmpty())
		{
			sql.Format("select * from User order by UserNo desc");
		}
		else
		{
			sql.Format("select * from User where UserName='%s' order by UserNo desc",userName);
		}
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open((_variant_t)sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
		pListCtrl->DeleteAllItems();
		while(m_pRecordset->adoEOF==0)
		{
			pListCtrl->InsertItem(0,"");
			pListCtrl->SetItemText(0,0,(char *)(_bstr_t)m_pRecordset->GetCollect("UserNo"));
			pListCtrl->SetItemText(0,1,(char *)(_bstr_t)m_pRecordset->GetCollect("UserName"));
			pListCtrl->SetItemText(0,2,(char *)(_bstr_t)m_pRecordset->GetCollect("UserAddress"));
			pListCtrl->SetItemText(0,3,(char *)(_bstr_t)m_pRecordset->GetCollect("UserPhone"));
			m_pRecordset->MoveNext();
		}
		m_pRecordset->Close();
		return TRUE;
	}
	catch(_com_error e)
	{
		return FALSE;
	}
}

BOOL ADOConnAccess::ReaderRegister(CString strReaderNo, CString strReaderIP, CString strReaderLocation, BYTE bReaderThreshold)
{
	try
	{
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open("select * from Reader",m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
		m_pRecordset->AddNew();
		m_pRecordset->GetFields()->GetItem("ReaderNo")->Value=(_bstr_t)strReaderNo;
		m_pRecordset->GetFields()->GetItem("ReaderIP")->Value=(_bstr_t)strReaderIP;
		m_pRecordset->GetFields()->GetItem("ReaderAddress")->Value=(_bstr_t)strReaderLocation;
		m_pRecordset->GetFields()->GetItem("ReaderThreshold")->Value=(BYTE)bReaderThreshold;
		m_pRecordset->Update();
		m_pRecordset->Close();
		return TRUE;
	}
	catch(_com_error e)
	{
		return FALSE;
	}
}

BOOL ADOConnAccess::ReaderQueryCombInit(CComboBox * pComboBox)
{
	try
	{
		/*while(pComboBox->GetCount())
		{
			pComboBox->DeleteString(0);
		}*/
		pComboBox->ResetContent();
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open("select distinct ReaderAddress from Reader",m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
		BOOL bFlag=FALSE;
		while(m_pRecordset->adoEOF==0)
		{
			bFlag=TRUE;
			CString strReaderLocation=(char *)(_bstr_t)m_pRecordset->GetCollect("ReaderAddress");
			pComboBox->AddString(strReaderLocation);
			m_pRecordset->MoveNext();
		}
		if(bFlag)
			pComboBox->SetCurSel(0);
		m_pRecordset->Close();
		return TRUE;
	}
	catch(_com_error e)
	{
		return FALSE;
	}
}

BOOL ADOConnAccess::ReaderQuery(CString strReaderLocation, CListCtrl *pListCtrl)
{
	try
	{
		CString sql;
		if(strReaderLocation.IsEmpty())
		{
			sql.Format("select * from Reader order by ReaderNo desc");
		}
		else
		{
			sql.Format("select * from Reader where ReaderAddress='%s'order by ReaderNo desc",strReaderLocation);
		}
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open((_variant_t)sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
		//int iThreshold=0;
		//char * pchBuf=new char[2];
		pListCtrl->DeleteAllItems();
		while(m_pRecordset->adoEOF==0)
		{
			pListCtrl->InsertItem(0,"");
			pListCtrl->SetItemText(0,0,(char *)(_bstr_t)m_pRecordset->GetCollect("ReaderNo"));
			pListCtrl->SetItemText(0,1,(char *)(_bstr_t)m_pRecordset->GetCollect("ReaderIP"));
			pListCtrl->SetItemText(0,2,(char *)(_bstr_t)m_pRecordset->GetCollect("ReaderAddress"));
			pListCtrl->SetItemText(0,3,(char *)(_bstr_t)m_pRecordset->GetCollect("ReaderThreshold"));
			//iThreshold=atoi((char *)(_bstr_t)(m_pRecordset->GetCollect("ReaderThreshold")));
			//pListCtrl->SetItemText(0,3,itoa(iThreshold,pchBuf,16););
			m_pRecordset->MoveNext();
		}
		//delete [] pchBuf;
		m_pRecordset->Close();
		return TRUE;
	}
	catch(_com_error e)
	{
		return FALSE;
	}
}

BOOL ADOConnAccess::ReaderUpdateCombInit(CComboBox * pComboBox,CIPAddressCtrl * pIpAddrCtrl,CEdit * pEditLocation,CEdit * pEditThreshold)
{
	try
	{
		/*while(pComboBox->GetCount())
		{
			pComboBox->DeleteString(0);
		}*/
		pComboBox->ResetContent();
		CString strReaderNo,sql;
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open("select distinct ReaderNo from Reader order by ReaderNo desc",m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
		BOOL bFlag=FALSE;
		while(m_pRecordset->adoEOF==0)
		{
			bFlag=TRUE;
			strReaderNo=(char *)(_bstr_t)m_pRecordset->GetCollect("ReaderNo");
			pComboBox->AddString(strReaderNo);
			m_pRecordset->MoveNext();
		}
		m_pRecordset->Close();
		if(bFlag)
		{
			pComboBox->SetCurSel(0);
			pComboBox->GetWindowText(strReaderNo);
			sql.Format("select * from Reader where ReaderNo='%s'",strReaderNo);
			m_pRecordset->Open((_variant_t)sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
			pIpAddrCtrl->SetWindowText((char *)(_bstr_t)m_pRecordset->GetCollect("ReaderIP"));
			pEditLocation->SetWindowText((char *)(_bstr_t)m_pRecordset->GetCollect("ReaderAddress"));
			pEditThreshold->SetWindowText((char *)(_bstr_t)m_pRecordset->GetCollect("ReaderThreshold"));
		}
		return TRUE;
	}
	catch(_com_error e)
	{
		return FALSE;
	}
}

BOOL ADOConnAccess::ReaderUpdateShowSelInfo(CComboBox *pComboBox, CIPAddressCtrl *pIpAddrCtrl, CEdit *pEditLocation, CEdit *pEditThreshold)
{
	try
	{
		CString strReaderNo,sql;
		pComboBox->GetWindowText(strReaderNo);
		if(!strReaderNo.IsEmpty())
		{
			sql.Format("select * from Reader where ReaderNo='%s'",strReaderNo);
			m_pRecordset.CreateInstance("ADODB.Recordset");
			m_pRecordset->Open((_variant_t)sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
			pIpAddrCtrl->SetWindowText((char *)(_bstr_t)m_pRecordset->GetCollect("ReaderIP"));
			pEditLocation->SetWindowText((char *)(_bstr_t)m_pRecordset->GetCollect("ReaderAddress"));
			pEditThreshold->SetWindowText((char *)(_bstr_t)m_pRecordset->GetCollect("ReaderThreshold"));
			m_pRecordset->Close();
		}
		return TRUE;
	}
	catch(_com_error e)

⌨️ 快捷键说明

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