测试环境:Win7_64bit + VS2013
第一步,下载Access2007驱动。微软官方:https://www.microsoft.com/zh-cn/download/details.aspx?id=23734
第二步,初始化OEL。在项目的CXXXAPP.cpp文件的InitInstance()中添加:
// Init OLE DLL
if(!AfxOleInit()) {
AfxMessageBox(_T("Init OLE DLL Failed!"));
return FALSE;
}
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
然后就可以使用ADO链接ACCESS数据库了,可以参考:http://www.cnblogs.com/sura/archive/2012/05/15/2500965.html
这个博文写的很好,但是我们在最后释放资源的时候要注意下函数的使用。
推荐如下写法:
if(m_pConnection) {
if(m_pConnection->State != adStateClosed) m_pConnection->Close();
m_pConnection.Release();
m_pConnection = NULL;
}
if(m_pCommand) {
m_pCommand.Release();
m_pCommand = NULL;
}
if(m_pRecordset) {
if(m_pRecordset->State != adStateClosed) m_pRecordset->Close();
m_pRecordset.Release();
m_pRecordset = NULL;
}
注意要使用.Release()而不是->Release(),因为我们需要让智能指针自己来处理资源释放的问题。