ado编程,GetCollect能够得到这个字段的值,但是用PutCollect修改同一个值后就不能update了,显示错误号为4005,错误原因是“基于查询的更新失败,因为没有发现要更新的行”。用update的sql语句来修改值没有任何问题,所以肯定不是权限原因,而且开始的时候这个代码是能正常执行的,后来不知道数据库发生了什么变化就不能执行了,哪位高手来帮忙解决下啊。
代码如下:m_pRecordsetuploaderID.CreateInstance("ADODB.Recordset");
sqluploaderID="select * from ss_role where roleID = \'"+uploaderIDkjCStr+"\'";
m_pRecordsetuploaderID->Open(_variant_t(sqluploaderID),_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
if (!m_pRecordsetuploaderID->adoEOF)
{
    usedspaceTemp=m_pRecordsetuploaderID->GetCollect("usedspace");//A1
    usedspaceStr=(LPCTSTR)(_bstr_t)usedspaceTemp;
    AfxMessageBox(usedspaceStr);//A2
    m_pRecordsetuploaderID->PutCollect("usedspace",_variant_t((CString)usedspacec));
    m_pRecordsetuploaderID->Update();//A3
}
m_pRecordsetuploaderID->Close();A2的时候能够把数据库里的值正确显示出来,但是A3的时候就出错“基于查询的更新失败,因为没有发现要更新的行”,这个字段是bigint(8)类型的,搞了一个上午也没找到原因,唉!