📄 adoconnaccess.cpp
字号:
// 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 + -