127 lines
1.9 KiB
C++
127 lines
1.9 KiB
C++
![]() |
// ADODBUtil.cpp: implementation of the CADODBUtil class.
|
|||
|
//
|
|||
|
//////////////////////////////////////////////////////////////////////
|
|||
|
|
|||
|
#include "ABDBUtil.h"
|
|||
|
#include <string>
|
|||
|
|
|||
|
|
|||
|
CABDBUtil* CABDBUtil::m_Instance = NULL;
|
|||
|
|
|||
|
CABDBUtil::CABDBUtil()
|
|||
|
{
|
|||
|
InitADOConnect();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
CABDBUtil::~CABDBUtil()
|
|||
|
{
|
|||
|
ExitConnect();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CABDBUtil::InitADOConnect()
|
|||
|
{
|
|||
|
//<2F><>ʼ<EFBFBD><CABC>ole/com<6F><EFBFBD><E2BBB7>
|
|||
|
// AfxOleInit();
|
|||
|
::CoInitialize(NULL);
|
|||
|
HRESULT hr;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD>Connection
|
|||
|
hr=m_pConnection.CreateInstance("ADODB.Connection");
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BSTR<54><52><EFBFBD><EFBFBD>_bstr_t
|
|||
|
if(SUCCEEDED(hr))
|
|||
|
{
|
|||
|
_bstr_t FileName = ".\\AllData.mdb";
|
|||
|
_bstr_t strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +FileName;
|
|||
|
hr=m_pConnection->Open(strConnect,"","",adModeUnknown);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD>쳣
|
|||
|
catch (_com_error e)
|
|||
|
{
|
|||
|
;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
bool CABDBUtil::Query(_bstr_t bstrSQL)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ⣬<DDBF><E2A3AC><EFBFBD><EFBFBD>connection<6F><6E><EFBFBD><EFBFBD><EFBFBD>գ<EFBFBD><D5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
|
|||
|
if (m_pConnection==NULL)
|
|||
|
InitADOConnect();
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
m_pRecordset.CreateInstance(_uuidof(Recordset));
|
|||
|
|
|||
|
|
|||
|
//ȡ<>ñ<EFBFBD><EFBFBD><D7BC>¼
|
|||
|
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
catch (_com_error e)
|
|||
|
{
|
|||
|
return false;
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
bool CABDBUtil::ExecuteSQL(_bstr_t bstrSQL)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
//<2F>Ƿ<EFBFBD><C7B7>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
|
|||
|
if (m_pConnection==NULL)
|
|||
|
InitADOConnect();
|
|||
|
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
|
|||
|
return true;
|
|||
|
}
|
|||
|
catch (_com_error e)
|
|||
|
{
|
|||
|
|
|||
|
return false;
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void CABDBUtil::ExitConnect()
|
|||
|
{
|
|||
|
//<2F>رռ<D8B1>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if(m_pRecordset!=NULL)
|
|||
|
m_pRecordset->Close();
|
|||
|
m_pConnection->Close();
|
|||
|
::CoUninitialize();//<2F>ǷŻ<C7B7><C5BB><EFBFBD>
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CABDBUtil::Release()
|
|||
|
{
|
|||
|
if (m_Instance)
|
|||
|
{
|
|||
|
delete m_Instance;
|
|||
|
m_Instance = NULL;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
CABDBUtil* CABDBUtil::GetInstance()
|
|||
|
{
|
|||
|
if (m_Instance==NULL)
|
|||
|
{
|
|||
|
m_Instance = new CABDBUtil();
|
|||
|
}
|
|||
|
|
|||
|
return m_Instance;
|
|||
|
}
|
|||
|
|
|||
|
std::string CABDBUtil::GetLastError()
|
|||
|
{
|
|||
|
return m_LastError;
|
|||
|
}
|