大家帮我看看这段代码有没有错?
...
pCommand.CreateInstance(__uuidof(Command));
pCommand->ActiveConnection=m_pConn;
CString sSql;
sSql="select * from uSite";
_RecordsetPtr pRs;
pCommand->CommandText=_bstr_t(sSql);
pCommand->CommandType=adCmdText;
pCommand->Parameters->Refresh();
pRs=pCommand->Execute(NULL,NULL,adCmdUnknown);
//_variant_t var = pRs->GetCollect("IntField"); //.......(1)
pRs->PutCollect("IntField", 2); //.....................(2)
pRs->Update();
pRs->Close(); 不知为什么,(2)这句总是要出异常,说:
“MyProgram中的 0x77e6e592 处未处理的异常: Microsoft C++ exception: _com_error @ 0x0012e9f8 。”
但读数据就没问题,如果把(1)句注释去掉,var是可以读出数据的。
是不是我修改数据的方法不对,可是我看网上的资料是说用PutCollect的呀?
...
pCommand.CreateInstance(__uuidof(Command));
pCommand->ActiveConnection=m_pConn;
CString sSql;
sSql="select * from uSite";
_RecordsetPtr pRs;
pCommand->CommandText=_bstr_t(sSql);
pCommand->CommandType=adCmdText;
pCommand->Parameters->Refresh();
pRs=pCommand->Execute(NULL,NULL,adCmdUnknown);
//_variant_t var = pRs->GetCollect("IntField"); //.......(1)
pRs->PutCollect("IntField", 2); //.....................(2)
pRs->Update();
pRs->Close(); 不知为什么,(2)这句总是要出异常,说:
“MyProgram中的 0x77e6e592 处未处理的异常: Microsoft C++ exception: _com_error @ 0x0012e9f8 。”
但读数据就没问题,如果把(1)句注释去掉,var是可以读出数据的。
是不是我修改数据的方法不对,可是我看网上的资料是说用PutCollect的呀?
设置一下超时时间m_pConnection->PutCommandTimeout(2000);
sSql="select * from uSite";
pRs->Open(_bstr_t(sSql),
m_pConn.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText); 就是说,不用pCommand去Execute出Recordset,换成Open方法。
奇怪奇怪,谁能给我个解释?
顶一下