.h文件
#pragma once
#import "msado15.dll" no_namespace rename("EOF","adoEOF")
class ADOConn
{
public:
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
public:
ADOConn();
virtual ~ADOConn();
_RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);
void OnInitADOConn();
BOOL ExecuteSQL(_bstr_t bstrSQL);
void ExitConnect();
};
.cpp文件
#include "stdafx.h"
#include "ADOConn.h"
ADOConn::ADOConn()
{
}
ADOConn::~ADOConn()
{
}
_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)
{
AfxMessageBox(e.Description());
ExitConnect();
}
return m_pRecordset;
}
void ADOConn::OnInitADOConn()
{
try
{
m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection->Open("Provider=SQLOLEDB.1;Password=111111;Persist Security Info=True;User ID=sa;Initial Catalog=StudentManage;Data Source=sz", \
"", "", adModeUnknown);
}
catch (_com_error &e)
{
AfxMessageBox(e.Description());
ExitConnect();
}
}
BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
try
{
if (m_pConnection == NULL)
{
OnInitADOConn(); //初始化连接对象
}
m_pConnection->Execute(bstrSQL, NULL, adCmdText); //执行SQL
return TRUE;
}
catch (_com_error &e)
{
AfxMessageBox(e.Description());
ExitConnect();
}
return FALSE;
}
void ADOConn::ExitConnect()
{
if (m_pRecordset != NULL)
{
m_pRecordset->Close(); //关闭记录集
}
m_pConnection->Close(); //关闭连接
}