MFC连接数据其实很简单,网上有许多相关资料,其实重点是连接字符串,其他的按照步骤操作很容易配置。
1.stdafx.h文件变更
在stdafx.h中添加如下语句
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2.声明相关指针
数据库相关指针
_ConnectionPtr m_pConnection;
_CommandPtr
m_pCommand;
_RecordsetPtr
m_pRecordSet;
3.数据库连接
下面是以access数据库连接作参考,SQL和Oracle等其他数据库连接字符串,请查找相关资料。
try
{
m_pConnection.CreateInstance(__uuidof(Connection));
hr = m_pConnection->Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database1.accdb","","",0);
catch (_com_error* e)
{
AfxMessageBox(e->ErrorMessage());
}
4.数据库命令执行
BOOL blRet = FALSE;
HRESULT hr = E_FAIL;
hr = m_pRecordSet.CreateInstance("ADODB.Recordset");
_variant_t RecordsAffected;
try
{
m_pRecordSet = m_pConnection->Execute(m_pCmd,&RecordsAffected,adCmdText);// m_pCmd数据库语句
if (m_pRecordSet->BOF)
{
AfxMesseageBox(_T("Empty!));
}
else
{
_variant_t varPartsCode;
while (!m_pRecordSet->adoEOF)
{
varPartsCode = m_pRecordSet->GetCollect("Name");
if (varPartsCode.vt == VT_BSTR)
{
TString str = varPartsCode.bstrVal;
m_lstPartCode.push_back(str);
}
m_pRecordSet->MoveNext();
}
}
}
catch (_com_error* e)
{
AfxMessageBox(e->ErrorMessage());
}