为什么说在事务中不能存在此游标类型的多记录集?

cnroky 2003-08-22 07:15:04
代码片段如下:
_RecordsetPtr pRecordset;
pConnection->BeginTrans();
HRESULT hr;
try
{
hr = pRecordset.CreateInstance("ADODB.Recordset");
if(FAILED(hr))
throw _com_error(hr);
CString sql = "select * from BANK_USER where MOBILENO='";
sql += CString(m_stActConReq.MobileNo)+"' and BANKID='";
sql += CString(m_stActConReq.BankID)+"'";
pRecordset->Open(_variant_t(sql),_variant_t((IDispatch *) pConnection,true), adOpenStatic,
adLockOptimistic, adCmdText);
if(pRecordset->RecordCount != 0)
{
pRecordset->Close();
pRecordset->Open(_variant_t("BANK_USER"),_variant_t((IDispatch *)pConnection,true), adOpenKeyset,
adLockOptimistic, adCmdTable);
pRecordset->AddNew();
pRecordset->Fields->GetItem("MOBILENO")->Value = _variant_t(m_stActConReq.MobileNo);
pRecordset->Fields->GetItem("BANKID")->Value = _variant_t(m_stActConReq.BankID);
pRecordset->Fields->GetItem("AVLFLAG")->Value = _variant_t("D");
pRecordset->Fields->GetItem("OPENTIME")->Value = _variant_t(CTime::GetCurrentTime().Format("%Y-%m-%d %H:%M:%S").GetBuffer(0));
pRecordset->Fields->GetItem("LASTTIME")->Value = _variant_t(CTime::GetCurrentTime().Format("%Y-%m-%d %H:%M:%S").GetBuffer(0));
pRecordset->Update();
}
catch{_com_error &e)
AddListMsg("错误信息 ———— 处理挂接错误",0,true);
AfxMessageBox((char *)e.Description());
pConnection->RollbackTrans();
if(pRecordset->State)
pRecordset->Close();
strcpy(m_stActConRsp.RespCode,"11");
strcpy(m_stActConRsp.RespMsg,"处理挂接失败");
memcpy(Buf,&m_stActConRsp,sizeof(STBK_UserRegRsp));//回复Bank的信息写到交换缓冲区中
return ;
}





...全文
57 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxr21cn 2003-09-01
  • 打赏
  • 举报
回复
你现在主要在搞些什么呀?
有没有什么作品呀

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧