导读:
提示:在使用TADOTable 进行更新操作的时候也会出现类似的问题。
原因:
Access 2000 (9.0.2812)
在access里做了一个测试表
表名test1
字段分别是
myid 文本
myname 文本
sumtotal 货币
remark 文本
在BCB里用ado连接,连接字符串:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=./data/bbg.mdb;Persist Security Info=False
程序加入一个ADOQuery,写入SQL:select * from test1
测试程序启动我做了以下几个工作:
(1)
ADOQuery1->Open();
(2)
ADOQuery1->Append();
ADOQuery1->FieldByName("myid")->AsString = "001";
ADOQuery1->Post();
(3)
ADOQuery1->Edit();
ADOQuery1->FieldByName("sumtotal")->AsFloat = 12;
ADOQuery1->Post();
在步骤三的post提示错误: 无法为更新行集定位,一些值可能在最后读取后改变.
然后使用fields editor将所有字段添加进来,设置
myname,sumtotal,remark的ProviderFlags的pfInWhere,pfInKey,pfHidden,都是false,只有pfInUpdate为true;myid的pfInKey,pfHidden是false, pfInUpdate,pfInWhere为true,重新执行上面的三步还是同样的错误信息.
---------------------------------------------------------------
答案一
将 ADOTable1->CursorLocation 的属性改为 clUseServer
答案二
在设计access表的时候,将所有的默认值去掉;
当CursorLocation 的属性是clUseClient时,因为数据库存在默认值,在第一次append的时候,数据库自动修改了部分列,所以客户端无法定位。
本文转自
http://blog.donews.com/jiji262/archive/2006/09/11/1034665.aspx
提示:在使用TADOTable 进行更新操作的时候也会出现类似的问题。
原因:
Access 2000 (9.0.2812)
在access里做了一个测试表
表名test1
字段分别是
myid 文本
myname 文本
sumtotal 货币
remark 文本
在BCB里用ado连接,连接字符串:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=./data/bbg.mdb;Persist Security Info=False
程序加入一个ADOQuery,写入SQL:select * from test1
测试程序启动我做了以下几个工作:
(1)
ADOQuery1->Open();
(2)
ADOQuery1->Append();
ADOQuery1->FieldByName("myid")->AsString = "001";
ADOQuery1->Post();
(3)
ADOQuery1->Edit();
ADOQuery1->FieldByName("sumtotal")->AsFloat = 12;
ADOQuery1->Post();
在步骤三的post提示错误: 无法为更新行集定位,一些值可能在最后读取后改变.
然后使用fields editor将所有字段添加进来,设置
myname,sumtotal,remark的ProviderFlags的pfInWhere,pfInKey,pfHidden,都是false,只有pfInUpdate为true;myid的pfInKey,pfHidden是false, pfInUpdate,pfInWhere为true,重新执行上面的三步还是同样的错误信息.
---------------------------------------------------------------
答案一
将 ADOTable1->CursorLocation 的属性改为 clUseServer
答案二
在设计access表的时候,将所有的默认值去掉;
当CursorLocation 的属性是clUseClient时,因为数据库存在默认值,在第一次append的时候,数据库自动修改了部分列,所以客户端无法定位。
本文转自
http://blog.donews.com/jiji262/archive/2006/09/11/1034665.aspx