大家帮我看看这段代码有没有错?
... 
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的呀?

解决方案 »

  1.   

    用UPDATE SQL语句试试
    设置一下超时时间m_pConnection->PutCommandTimeout(2000);
      

  2.   

    试了很久,还是不行,只好碰运气换种方法,很奇怪,换种方法,居然行了!!
       sSql="select * from uSite";
       pRs->Open(_bstr_t(sSql), 
                   m_pConn.GetInterfacePtr(), 
                   adOpenDynamic,
                   adLockOptimistic,
                   adCmdText);    就是说,不用pCommand去Execute出Recordset,换成Open方法。
        奇怪奇怪,谁能给我个解释?
      

  3.   

    我也在学ADO  但是没遇见,今天学着了~  谢谢
    顶一下