1.导入数据库。#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","REOF") 其中rename是将EOF重新命名为REOF。
2.初始化COM库。使用::CoInitialize(NULL)和CoUnitialize()来对COM库的初始化和结束。在MFC中也可以使用AfxOleInit()来初始化。
3.操作数据库。可以使用三个智能指针_ConnectionPtr,_RecordsetPtr,_CommandPtr来对数据操作。
简单代码实现:
::CoInitialize(NULL);
_ConnectionPtr m_pconenction;
try
{
m_pconnection.CreateInstance(_uuidof(Conenction));
//也可以用m_pconnection.CreateInstance("ADODB.Connection");但不推荐这种方法,该方法可能造成错误!
m_pconnection->Open(..);
}
catch(_com_error e)
{
AfxMessageBox(e.Descrption());
}
_RecordsetPtr m_precordset;
try
{
m_precordset.CreateInstance(_uuidof(Recordset));//同上可用上面的方法,不推荐。
m_precordset.Open("SQL语句",....)//使用这种方法执行SQL语句,当然还有其他方法;
//也可以使用在在其他两个智能指针使用Excute()来执行SQL语句。
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
//提取操作
while(!m_precorset->REOF)
{
_variant_t var;
var=m_precordset->GetCollect("编号");
list.InsertItem(0,(char *)_bstr_t(var));
.....
m_precordset->MoveNext();//其他移动还有:MoveFirst(),MoveLast(),MovePrevious();Move()等操作
}
//插入操作
m_precordset->AddNew():
m_precordset->PutCollect("编号",值);
m_precordset->Update();
//删除操作
m_precordset->Delete(adAffectCurrent);//删除当前记录,可以用几个Move操作来改变当前记录。
m_pconnection->Close();
m_precordset->Close();
::CoUninitialize();