}
数据库连接函数
#include \{ }
void ADOConn::displayResultSet(_RecordsetPtr rsp) {
try {
rsp->MoveFirst(); while(!rsp->adoEOF) {
string
::CoInitialize(NULL); 初始化OLECOM库环境,为访问ADO接口做准备 HRESULT .CreateInstance(\创建Connection对象 }
cout<<\
_bstr_t strConnect=\ ->Open( strConnect,\ cout<<\ if(SUCCEEDED(()< ** 离开临界区 * LeaveCriticalSection(&m_csCommunicationSync); return true; return false; bookname=(char*)(_bstr_t)(rsp->Fields->GetItem(_variant_t(\ } _RecordsetPtr & ADOConn::GetRecordSet(_bstr_t bstrSQL) { m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdTtry { 连接数据库,如果connection对象为空,则重新连接数据库 if(m_pConnection==NULL) OnInitADOConn(); } catch (_com_error &e) { } cout << e.Description()< cout< 创建记录集对象 m_pRecordset.CreateInstance(_uuidof(Recordset)); ext); } catch(_com_error e) { } bool ADOConn::ExecuteSQL(_bstr_t bstrSQL)(\{ } void ADOConn::ExitConnect() { 关闭记录集和连接 try { } catch(_com_error e) { } AfxMessageBox(e.Description()); 是否已经连接数据库 if(m_pConnection ==NULL) OnInitADOConn(); } 返回记录集 return m_pRecordset; cout< m_pConnection->Execute(bstrSQL,NULL,adCmdText); return true; cout< } 主函数 RFIDKCSJ.cpp : 定义控制台应用程序的入口点。 #include \{ unsigned char** EPC=0; int flag=0; SaleManager* sale=new SaleManager(); while(1) { flag=sale->displayMenu(); switch(flag) { case 1: sale->addProduct(); break; if(m_pRecordset !=NULL) m_pRecordset->Close(); m_pConnection->Close(); 释放环境 ::CoUninitialize();关闭olecom库,释放资源 case 2: sale->saleProduct(); break; case 3: