vc++ 中ADO數據庫的配置(Access2003-Access2007)
1. 首先在StdAfx.h中添加以下代碼引入數據庫:
#import "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF")
2. 然後再VC6.0或VS2012中:插入->類,彈出一個窗口,類名叫做CADOConn,基類選擇Generic Class(切記)
3. 然後在Class View中雙擊CADOConn,添加以下代碼:
class CADOConn
{
public:
CADOConn();
virtual ~CADOConn();
_RecordsetPtr m_pRecordset;//記錄集指針
_ConnectionPtr m_pConnection;
void OnInitADOConn();//連接數據源
_RecordsetPtr& GetRecordset(_bstr_t bstrSQL);//獲取打開的記錄集指針
BOOL ExecuteSQL(_bstr_t bstrSQL);//執行SQL語句
void ExitConnect();//斷開數據連接
};
4. 然後在File View中找到ADOCon.cpp文件,添加以下代碼:
CADOConn::CADOConn()
{
}
CADOConn::~CADOConn()
{
}
void CADOConn::OnInitADOConn()
{
::CoInitialize(NULL);
try
{
m_pConnection.CreateInstance("ADODB.Connection");
// _bstr_t strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Med.mdb";//.mdb放在工程目錄下 access2003
_bstr_t strConnect ="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Med.mdb;Persist Security Info=False";//access2007
m_pConnection->Open(strConnect,"","",adModeUnknown);
// AfxMessageBox("數據庫連接成功");
}
catch(_com_error e)
{
AfxMessageBox("數據庫連接失敗");
}
}
void CADOConn::ExitConnect()
{
if(m_pRecordset!=NULL)//關閉記錄集和斷開數據源鏈接
m_pConnection->Close();
::CoUninitialize();//釋放COM環境
}
_RecordsetPtr& CADOConn::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("記錄集打開失敗");
}
return m_pRecordset;
}
BOOL CADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
try
{
if(m_pConnection==NULL)
OnInitADOConn();
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch (_com_error e)
{
AfxMessageBox("不能打開記錄集");
return false;
}
}
5.到此ADO數據庫配置成功