1.引入ADO
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
数据库
2.建立链接数据库类(两个指针及四个成员函数)
class CADOConn
{
public:
CADOConn();
virtual ~CADOConn();ide
_ConnectionPtr m_pConnection; //对象智能指针链接操做数据库
_RecordsetPtr m_pRecordPtr; //Recordset对象指针(记录集)函数
//初始化链接数据库,执行查询,执行SQL语句,断开链接
void OnInitDBConnect();
_RecordsetPtr &GetRecordSet(_bstr_t bstrSQL);
BOOL ExecuteSQL(_bstr_t bstrSQL);
void ExitConnect();ui
};spa
3.四个成员函数实现
void CADOConn::OnInitDBConnect()
{
::CoInitialize(NULL); //初始化OLE/COM库环境
try
{
//建立connection对象
m_pConnection.CreateInstance("ADODB.Connection");
//设置链接字符串
_bstr_t strConnect="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=本身数据库填写处;Data Source=.";
//SERVER和UID,PWD的设置根据实际状况来设置
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(e.Description()); //显示错误信息
}
}指针
_RecordsetPtr & CADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
if(m_pConnection==NULL) //链接对象不存在
OnInitDBConnect(); //从新链接
m_pRecordPtr.CreateInstance(_uuidof(Recordset)); //建立记录集对象
//执行查询,等到记录集
m_pRecordPtr->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e) //捕捉异常
{
AfxMessageBox(e.Description()); //显示错误信息
}
return m_pRecordPtr; //返回记录集
}对象
BOOL CADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
try
{
if(m_pConnection==NULL)
OnInitDBConnect();
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch (_com_error e)
{
AfxMessageBox(e.Description());
return false;
}
}ip
void CADOConn::ExitConnect()
{
if(m_pConnection!=NULL)
{
m_pRecordPtr->Close();
m_pConnection->Close();
}
::CoUninitialize();
}字符串