// ADOConn.cpp: implementation of the ADOConn class. /////////////////////////////// 

#include
"stdafx.h" 
#include
"myshoujiDlg.h" //主函数 
#include
"ADOConn.h" 

#ifdef _DEBUG

#undef THIS_FILE
static char THIS_FILE[]=__FILE__;

#define
new DEBUG_NEW

#endif
///////////////////////////////
// Construction/Destruction //////////////////////////////// 

ADOConn::ADOConn()

{


}


ADOConn::~ADOConn()

{


}

void ADOConn::OnInitADOConn()
//以调用access为例,其实调用SqlServer等也是一样的 
{

::CoInitialize(NULL);
//初始化COM组件
try 
{

m_pConnection.CreateInstance(
"ADODB.Connection");

_bstr_t strConnect=
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=shouji.mdb";
//链接数据库,这里是shouji数据库,可以根据具体情况改 
m_pConnection->Open(strConnect,
"","",adModeUnknown);

}
catch(_com_error e)

{

AfxMessageBox(e.Description());

}

}


_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)

{
try 
{
if(m_pConnection==NULL)

OnInitADOConn();

m_pRecordset.CreateInstance(__uuidof(Recordset));

m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

}
catch(_com_error e)
//捕捉异常 
{

e.Description();

}
return m_pRecordset;

}


BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)
//再打开数据库后,执行Sql语句 
{

_variant_t RecordsAffected;
try 
{
if(m_pConnection==NULL)

OnInitADOConn();

m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;

}
catch(_com_error e)

{

e.Description();
return false;

}

}

void ADOConn::ExitConnect()
//退出链接 
{
if(m_pRecordset!=NULL)

m_pRecordset->Close();

m_pConnection->Close();

::CoUninitialize();

}