VS2010操作Acess数据库
1. 开发环境
- 编程环境 VS2010
- win7 64位、Acess2007
2. 基本功能实现
3. 操作步骤
- 新建MFC工程SQLTest、在stdafx.h 里 #import “C:\Program Files\Common Files\System\ado\msado15.dll” no_namespace rename(“EOF”,”adoEOF”)(也可以将msado15.dll”复制到工程目录下,直接#import “msado15.dll”)
- 初始化COM组件
BOOL CSQLTestApp::InitInstance()
{
if(CoInitialize(NULL)!=S_OK)
{
AfxMessageBox("初始化Com失败!")
return false;
}
``````
}
int CSQLTestApp::ExitInstance()
{
CoUninitialize();
return CWinApp::ExitInstance();
}
bool CAdoServer::OpenConnect(CString username, CString password, CString strPath)
{
CString lpszConnect= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=";
lpszConnect+=strPath;
m_hr = m_pConnection.CreateInstance("ADODB.Connection");
try
{
m_hr = m_pConnection->Open(_bstr_t(lpszConnect),(_bstr_t)username,(_bstr_t)password,adModeUnknown);
if(SUCCEEDED(m_hr))
{
m_hr = m_pRecordset.CreateInstance(__uuidof(Recordset));
}
}
catch (_com_error e)
{
CString err;
err.Format("<提示:>连接错误!\r\n错误信息:%s:",e.ErrorMessage());
AfxMessageBox(err);
return false;
}
m_IsConnectSucess = true;
return true;
}
bool CAdoServer::OpenRecordset(_bstr_t sql)
{
try
{
ColseRecordset();
m_hr = m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
}
catch (_com_error e)
{
CString str;
str.Format("<提示:>执行Oracle命令出现错误,错误原因:%s",e.ErrorMessage());
AfxMessageBox(str);
return false;
}
m_IsConnectSucess = true;
return true;
}
void CAdoServer::ColseRecordset(void)
{
if(m_pRecordset->GetState() ==adStateOpen)
{
m_pRecordset->Close();
}
m_IsOpenRecordset = false;
}
- 关闭数据库连接
void CAdoServer::CloseConnect(void)
{
m_pConnection -> Close(); //关闭数据库连接
m_IsConnectSucess = false; //数据库关闭
}
注释:两个智能指针
_ConnectionPtr m_pConnection; // 连接对象
_RecordsetPtr m_pRecordset; // 记录集对象
基本执行步骤:
初始化COM->OpenConnect(连接数据库)->OpenRecordset(执行SQL语句)->ColseRecordset->CloseConnect->释放COM
4. 总结
- 这里只是介绍了一种连接与操作数据库的方法,简单的操作步骤大致如上。其实完全可以自己封装成一个类,根据需要添加功能。
- 关于SQL语句,后续会更新总结。