连接字符串是这样的:
pConn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=lib.mdb";
pConn->Open("","","",adModeUnknown);pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
pCmd->CommandText="select * from tbBooks";
pRst=pCmd->Execute(NULL,NULL,adCmdText);可以读出记录,但是:
pRst->MoveFirst();
pRst->Delete(adAffectCurrent);//pRst->AddNew();
就出错。系统提示:Unknown error 0x800A0CB3.这是为什么呢?

解决方案 »

  1.   

    pConn->Open("","","",adModeUnknown);的第一个参数可以这么写吗?
    不用pConn->Open("ConnectionString","","",adModeUnknown);这样吗?
      

  2.   

    使用try..catch看看 try
    { }
    catch (_com_error e) {
    CString errormessage;
    errormessage.Format("连接数据库失败!\n错误信息:%s", e.ErrorMessage());
    AfxMessageBox(errormessage);
    return -1;
    }
      

  3.   

    recordset = command.Execute( RecordsAffected, Parameters, Options )
    如果没有指定游标类型,ADO 将默认打开仅向前游标。
    仅向前游标 — 除仅允许在记录中向前滚动之外,其行为类似静态游标。这样,当需要在 Recordset 中单程移动时就可提高性能。
    //是MoveFirst()出错了吧?
      

  4.   

    忘记说了:
    可以正确打开数据库,并且可以用pRst->Fields->GetItem(index)->Value读出表里面的数据,用try..catch,MoveFirst()也没有出错,只是一用pRst->Delete(adAffectCurrent);//pRst->AddNew();马上就出错了。
      

  5.   

    recordset = command.Execute( RecordsAffected, Parameters, Options ) //指定动态或者键集游标
      

  6.   

    不用Command用 
    pRst->Open(SQLCommand,_variant_t((IDispatch*)pConn),adOpenDynamic,adLockUnspecified,adCmdText);
    还是不能pRst->Delete(adAffectCurrent);//pRst->AddNew();
      

  7.   

    我也碰到Unknown error 0x800A0CB3错误,在某些类中没有错误,在某些类中就有,搞不清楚怎么回事。
    其它地方有一些参考,不过对我没用,我的权限都设的最高的,而且只在某些类内出现。
    参考为:A: ADOPENFORWARDONLY(=0) 
    只读,且当前数据记录只能向下移动ADOPENKEYSET(=1) 
    只读,当前数据记录可自由移动ADOPENDYNAMIC(=2) 
    可读写,当前数据记录可自由移动ADOPENSTATIC(=3) 
    可读写,当前数据记录可自由移动,可看到新增记录B:ADLOCKREADONLY(=1) 
    缺省锁定类型,记录集是只读的,不能修改记录ADLOCKPESSIMISTIC(=2) 
    悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录。只要编辑一开始,则立即锁住记录。ADLOCKOPTIMISTIC(=3) 
    乐观锁定 ,直到用Update方法提交更新记录时才锁定记录。ADLOCKBATCHOPTIMISTIC(=4) 
    批量乐观锁定,允许修改多个记录,只有调用UpdateBatch方法后才锁定记录。当不需要改动任何记录时,应该使用只读的记录集,这样提供者不用做任何检测。
    对于一般的使用,乐观的锁定可能是最好的选择,因为记录只被锁定一小段时间,
    数据在这段时间被更新。这减少了资源的使用。