环境布置:
stdafx.h中添加
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
接着使用 _ConnectionPtr 建立连接
constexpr auto conn = "Provider = OraOLEDB.Oracle.1; Password = password; Persist Security Info = True; User ID = userID; Data Source = DB";
_ConnectionPtr pConnection;
::CoInitialize(NULL);//初始化环境,不加可能连接数据库不成功!!
HRESULT hr = pConnection.CreateInstance("ADODB.Connection");
if (SUCCEEDED(hr))
hr = pConnection->Open(strIniPath.c_str(), "", "", NULL);
接下来使用 _RecordsetPtr pRecordset 操作数据集
_RecordsetPtr pRecordset;
hr = pRecordset.CreateInstance("ADODB.Recordset");//建立连接
string
pRecordset->Open("SELECT * FROM table_name",
_variant_t((IDispatch*)pConnection, TRUE), adOpenStatic, adLockOptimistic, adCmdText);
while (!oracle.pRecordset->adoEOF)// rename (EOF,adoEOF)
{
//取值操作
string name= _com_util::ConvertBSTRToString(pRecordset->GetCollect("name").bstrVal);
//赋值操作
pRecordset->PutCollect(_variant_t("error_item"),_variant_t(SetpNumber));
//取下一条记录
oracle.pRecordset->MoveNext();
//update确认执行
oracle.pRecordset->Update();
}
//释放资源
pRecordset->Close();
pRecordset->Release();
pRecordset = NULL;
pConnection->Close();
pConnection->Release();
pConnection= NULL;