连接字符串是这样的:
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.这是为什么呢?
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.这是为什么呢?
解决方案 »
- 如何保存图片的指定区域 VC6.0 MFC GDI+
- 下午面试,聚众散分!!
- 做网络聊天室中出现的错误?高手请进
- 在一个对话框中的输入字段如何填入到另一个对话框的CListCtrl中?
- 提个关于控件的问题
- 有关串口问题,在线等...
- 在socket编程中,怎么把getpeername得到sockaddr转化为字符型的ip和数字的端口?
- 用VC创建一个简单的写注册表小程序需要怎么办?我希望VC不要给我加太多东西
- 请教如何实现透明位图
- 在dlg.cpp中用了一个CArray<int, int>来存储数据,编译没问题,打开classwizard时出错
- 请问vc用哪一份文件记录控件的位子?
- c++中 如何发送文件到web server
不用pConn->Open("ConnectionString","","",adModeUnknown);这样吗?
{ }
catch (_com_error e) {
CString errormessage;
errormessage.Format("连接数据库失败!\n错误信息:%s", e.ErrorMessage());
AfxMessageBox(errormessage);
return -1;
}
如果没有指定游标类型,ADO 将默认打开仅向前游标。
仅向前游标 — 除仅允许在记录中向前滚动之外,其行为类似静态游标。这样,当需要在 Recordset 中单程移动时就可提高性能。
//是MoveFirst()出错了吧?
可以正确打开数据库,并且可以用pRst->Fields->GetItem(index)->Value读出表里面的数据,用try..catch,MoveFirst()也没有出错,只是一用pRst->Delete(adAffectCurrent);//pRst->AddNew();马上就出错了。
pRst->Open(SQLCommand,_variant_t((IDispatch*)pConn),adOpenDynamic,adLockUnspecified,adCmdText);
还是不能pRst->Delete(adAffectCurrent);//pRst->AddNew();
其它地方有一些参考,不过对我没用,我的权限都设的最高的,而且只在某些类内出现。
参考为:A: ADOPENFORWARDONLY(=0)
只读,且当前数据记录只能向下移动ADOPENKEYSET(=1)
只读,当前数据记录可自由移动ADOPENDYNAMIC(=2)
可读写,当前数据记录可自由移动ADOPENSTATIC(=3)
可读写,当前数据记录可自由移动,可看到新增记录B:ADLOCKREADONLY(=1)
缺省锁定类型,记录集是只读的,不能修改记录ADLOCKPESSIMISTIC(=2)
悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录。只要编辑一开始,则立即锁住记录。ADLOCKOPTIMISTIC(=3)
乐观锁定 ,直到用Update方法提交更新记录时才锁定记录。ADLOCKBATCHOPTIMISTIC(=4)
批量乐观锁定,允许修改多个记录,只有调用UpdateBatch方法后才锁定记录。当不需要改动任何记录时,应该使用只读的记录集,这样提供者不用做任何检测。
对于一般的使用,乐观的锁定可能是最好的选择,因为记录只被锁定一小段时间,
数据在这段时间被更新。这减少了资源的使用。