在Delphi中,如果使用ADOQuery插入数据没有问题, 之后对数据进行修改保存时,就会遇到“无法为更新定位行,一些值可能已在最后一次读取后已更改”的问题。 原因有这样几种: 1.在数据库设计时,为某些字段设置了默认值,在修改进行提交以后,数据库会自动修改对应字段的所有行的默认值,从而导致了数据库与数据集中数据的不...
2. 如果必须添加,尽量使用"insert"语句来完成添加; 实例说明:我写了一个类用来读写数据库中的指定记录。我一前一后使用该类中的两个方法对数据库中同一表格的同一行数据的不同字段进行修改,此时出现"无法为更新定位行。一些值可能已在最后一次读取后已更改。"错误提示。原因是两次提交过于接近,时间间隔以毫秒计,...
保存之后,重新刷新数据看看;或者是你修改了主键值,引起了行定位错误;有触发器,不要重写之前的表,容易出错。你可以把触发器要执行的任务修改成一个存储过程,然后在进行数据修改的时候,执行成功之后再执行该过程试试。
对日期格式的赋值出现问题。取消日期格式赋值后问题消失。 出现问题时的赋值方式: ado->Fields->operator[i]->AsDateTime = *(TDateTime*) temp; ADO在保存时提示错误:“无法为更新定位行。一些值可能已在最后一次读取后已更改” 这个问题困扰了大半天,在网上查询了很多这类问题解决方法,大都说得很模糊,未能根本...
你试试对ClientDateset进行设置,里面有两个属性: NeedUpdateFields和whereFields 在里面添加可以进行修改的字段和条件
无法为更新定位行。一些值可能已在最后一次读取后已更改解决办法,在Delphi中,如果使用ADOQuery插入数据没有问题,之后对数据进行修改保存时,就会遇到“无法为更新定位行,一些值可能已在最后一次读取后已更改”的问题。原因有这样几种:1.在数据库设计时,为某些字段设置
无法为更新定位行。一些值可能已在最后一次读取后已更改解决办法,在Delphi中,如果使用ADOQuery插入数据没有问题,之后对数据进行修改保存时,就会遇到“无法为更新定位行,一些值可能已在最后一次读取后已更改”的问题。原因有这样几种:1.在数据库设计时,为某些字段设置
1.修改数据库设计,不再设置默认值,为数据库表定义主键,保证其唯一性。2.在执行完ADOQuery.Post之后,执行ADOQuery.Refresh,对于设置默认值的情况可以解决。
在第一次append的时候,数据库自动修改了部分列,所以客户端无法定位。解决方法:修改数据库设计,不再设置默认值,为数据库表定义主键,保证其唯一性。在执行完ADOQuery.Post之后,执行ADOQuery.Refresh,对于设置默认值的情况可以解决。置ADOQuery控件的CursorLocation属性为clUseServer。