使用ADO操作数据库时,如果想要批量插入数据,或者修改数据,可以参考下面的代码:_RecordsetPtr pRecord;
pRecord.CreateInstance("ADODB.Recordset");
pRecord->CursorLocation = adUseClient;
CString strSQL = L"SELECT * FROM table_name";
try
{
pRecord->Open(_bstr_t(strSQL), pConnection.GetInterfacePtr(), adOpenStatic, adLockBatchOptimistic, adCmdText);
while(!pRecord->AdoEOF)
{
strValue = L"my name is xxx";
pRecord->PutCollect(_variant_t((Long)(0)), _variant_t(strValue));
pRecord->PutCollect("name",_variant_t(strValue));
pRecord->MoveNext();
}
pRecord->UpdateBatch(adAffectAll);
pRecord->Close();
pRecord.Release();
}
catch(_com_error &e)
{
OutputDebugString(e.Description());
}
关键点:使用本地游标库提供的客户端的游标pRecord->CursorLocation = adUseClient;
pRecord 的 Open 函数中设置 LockType 为 adLockBatchOptimistic 。
使用 PutCollect 函数绑定值到指定的字段。
如果想添加一行新的数据使用 AddNew 函数。pRecord->AddNew();
最后使用 UpdateBatch 函数提交数据。pRecord->UpdateBatch(adAffectAll);
如果 UpdateBatch 失败,使用 CancelBatch 取消提交。pRecord->CancelBatch(adAffectAll);