158 lines
2.9 KiB
C++
158 lines
2.9 KiB
C++
![]() |
#include"ADOConn.h"
|
|||
|
#include<iostream>
|
|||
|
|
|||
|
|
|||
|
ADOConn::ADOConn(void)
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
ADOConn::~ADOConn(void)
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void ADOConn::OnInitADOConn(_bstr_t add)
|
|||
|
{
|
|||
|
//<2F><>ʼ<EFBFBD><CABC>ole/com<6F><EFBFBD><E2BBB7>
|
|||
|
::CoInitialize(NULL);
|
|||
|
try
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD>connection<6F><6E><EFBFBD><EFBFBD>
|
|||
|
m_pConnection.CreateInstance("ADODB.Connection");
|
|||
|
add1 = add;
|
|||
|
_bstr_t FileName = add;//".\\AllData.mdb"
|
|||
|
_bstr_t strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName;
|
|||
|
m_pConnection->Open(strConnect, "", "", adModeUnknown);
|
|||
|
//m_pConnection.CreateInstance("ADODB.Connection");
|
|||
|
////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
//m_pConnection->Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=lolic.accdb;Persist Security Info=False ", "", "", adModeUnknown);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
|
|||
|
}
|
|||
|
//<2F><><EFBFBD>쳣
|
|||
|
catch (_com_error e)
|
|||
|
{
|
|||
|
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
cout << e.Description() << endl;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void ADOConn::ExitConnect(void)
|
|||
|
{
|
|||
|
//<2F>رռ<D8B1>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (m_pRecordset != NULL)
|
|||
|
m_pRecordset->Close();
|
|||
|
m_pConnection->Close();
|
|||
|
//<2F>ͷŻ<CDB7><C5BB><EFBFBD>
|
|||
|
::CoUninitialize();
|
|||
|
}
|
|||
|
|
|||
|
void ADOConn::GetRecordSet(_bstr_t bstrSql, int c)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (!Query((_bstr_t)bstrSql))
|
|||
|
{
|
|||
|
//ִ<><D6B4>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ش<EFBFBD><D8B4><EFBFBD>
|
|||
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n" << endl;
|
|||
|
return ;
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ⣬<DDBF><E2A3AC><EFBFBD><EFBFBD>connection<6F>ǿգ<C7BF><D5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
|
|||
|
if (m_pConnection == NULL)
|
|||
|
OnInitADOConn(add1);
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
|||
|
m_pRecordset.CreateInstance(__uuidof(Recordset));
|
|||
|
//ȡ<>ñ<EFBFBD><C3B1>еļ<D0B5>¼
|
|||
|
m_pRecordset->Open(bstrSql, m_pConnection.GetInterfacePtr(), adOpenDynamic,
|
|||
|
adLockOptimistic, adCmdText);
|
|||
|
}
|
|||
|
catch (_com_error e)
|
|||
|
{
|
|||
|
cout << e.Description() << endl;
|
|||
|
}
|
|||
|
search = m_pRecordset;//<2F><><EFBFBD>ؼ<EFBFBD>¼<EFBFBD><C2BC>
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
bool ADOConn::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)
|
|||
|
OnInitADOConn(add1);
|
|||
|
|
|||
|
//<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;
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
string ADOConn::search_RES(_variant_t resid)
|
|||
|
{
|
|||
|
_bstr_t strRecord;
|
|||
|
string c;
|
|||
|
while (!search->adoEOF)
|
|||
|
{
|
|||
|
strRecord = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect(resid);
|
|||
|
c = (string)strRecord;
|
|||
|
}
|
|||
|
return c;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
_RecordsetPtr ADOConn::GetRecordSet(_bstr_t bstrSql)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ⣬<DDBF><E2A3AC><EFBFBD><EFBFBD>connection<6F>ǿգ<C7BF><D5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
|
|||
|
if (m_pConnection == NULL)
|
|||
|
OnInitADOConn(add1);
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
|||
|
m_pRecordset.CreateInstance(__uuidof(Recordset));
|
|||
|
//ȡ<>ñ<EFBFBD><C3B1>еļ<D0B5>¼
|
|||
|
m_pRecordset->Open(bstrSql, m_pConnection.GetInterfacePtr(), adOpenDynamic,
|
|||
|
adLockOptimistic, adCmdText);
|
|||
|
}
|
|||
|
catch (_com_error e)
|
|||
|
{
|
|||
|
cout << e.Description() << endl;
|
|||
|
}
|
|||
|
//<2F><><EFBFBD>ؼ<EFBFBD>¼<EFBFBD><C2BC>
|
|||
|
return m_pRecordset;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
bool ADOConn::ExecuteSQL(_bstr_t bstrSql)
|
|||
|
{
|
|||
|
_variant_t recordsAffected;
|
|||
|
try
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>ݿ<EFBFBD><DDBF>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (m_pConnection == NULL)
|
|||
|
OnInitADOConn(add1);
|
|||
|
m_pConnection->Execute(bstrSql, NULL, adCmdText);
|
|||
|
return true;
|
|||
|
}
|
|||
|
catch (_com_error e)
|
|||
|
{
|
|||
|
cout << e.Description() << endl;
|
|||
|
return false;
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|