adoquery1中的数据集是随adoquery2的scroll而改变的,执行
adoquery1.Edit;
adoquery1.FieldByName('f_reportstatus').AsInteger:= 2;
adoquery1.Post;
时,出错:‘键列信息不足’。
adoquery1中的数据集是随adoquery2的scroll而改变的。
另一处和上面情况类似,出错信息是:‘无法为更新行集定位,一些值可能在最后读取后改变’。
20 个解决方案
#1
帮顶。
#2
从来都是直接使用SQL来写的,你这样的写法没有用过,但他有个问题是无法定位在写那一行上,我看到过好多人都使用ParamByName,这样的方式来写的,在ADOQUERY中这样写adoquery1.Parameters.ParamByName(),不要使用FIELDBYNAME,除非你使用定位后才可以吧,没具体试过,理论上是可行的
#3
就是说你的ADOQuwey1中用到的列,无法确定
别这样写了
别这样写了
#4
谢过楼上,不过我都是用FieldByName定位列的,只用Parameters来传递参数,没有出现过问题。上面的语句我如果去掉POST就不会出现上述的问题了,应该是无法定位行的问题,但如果不POST,不能保证数据库中数据更新了啊。
#5
我估计应该和adoquery1中的数据集是随adoquery2的scroll而改变的有关系,高手再帮帮忙,比较急~~
#6
哈哈,我也遇见过这样的问题,你表里是不是有非空列的值被你修改了呀。
#7
应该是你的表结构的问题 , 你的表是不是没有主键啊!!!或UP
#8
'f_reportstatus'写错没有?
#9
你换在BEFORscroll 事件中写代码
#10
表结构被更改了
请检查
关键字,非空字段,有默认值字段
请检查
关键字,非空字段,有默认值字段
#11
如果前几天都可以的,现在不行的话那肯定是改了什么东西,我不单指你的 Source ,还包括你的 System environment 和 DB.
#12
我怀疑你的表没有主键
#13
哦,是没有设主键,跟这有关系??
#14
因为你的表之间设定了关系,而你是在插入操作时是先操作了从表.
#15
我现在在家,不能调试程序,所以还不知否是没主键的原因,不过我记得没有设主从表啊,
#16
这个问题在我以前做的程序里曾经有过,我记得是后来把每个表都设了主键才解决了,楼主可以试试。
#17
应该是你的adoquery1.SQL.tex语句中select后面的字段列表中没把所有关键字列出或adoquery1的字段编辑器过滤了关键字段,检查一下重试
#18
你用了異動,那麼一定有相關聯的字段,現在你只增加被異動表裡的字段數據,這肯定不行的
#19
无法定位更新行,使因为你的query在用的时候,你的源表内容发生改变,而且你又更改了query的数据,导致在提交的时候无法更新你的query,我也遇到过这种情况
#20
把所有表加了主键之后问题解决了,实在谢谢诸位了~。
#21
#1
帮顶。
#2
从来都是直接使用SQL来写的,你这样的写法没有用过,但他有个问题是无法定位在写那一行上,我看到过好多人都使用ParamByName,这样的方式来写的,在ADOQUERY中这样写adoquery1.Parameters.ParamByName(),不要使用FIELDBYNAME,除非你使用定位后才可以吧,没具体试过,理论上是可行的
#3
就是说你的ADOQuwey1中用到的列,无法确定
别这样写了
别这样写了
#4
谢过楼上,不过我都是用FieldByName定位列的,只用Parameters来传递参数,没有出现过问题。上面的语句我如果去掉POST就不会出现上述的问题了,应该是无法定位行的问题,但如果不POST,不能保证数据库中数据更新了啊。
#5
我估计应该和adoquery1中的数据集是随adoquery2的scroll而改变的有关系,高手再帮帮忙,比较急~~
#6
哈哈,我也遇见过这样的问题,你表里是不是有非空列的值被你修改了呀。
#7
应该是你的表结构的问题 , 你的表是不是没有主键啊!!!或UP
#8
'f_reportstatus'写错没有?
#9
你换在BEFORscroll 事件中写代码
#10
表结构被更改了
请检查
关键字,非空字段,有默认值字段
请检查
关键字,非空字段,有默认值字段
#11
如果前几天都可以的,现在不行的话那肯定是改了什么东西,我不单指你的 Source ,还包括你的 System environment 和 DB.
#12
我怀疑你的表没有主键
#13
哦,是没有设主键,跟这有关系??
#14
因为你的表之间设定了关系,而你是在插入操作时是先操作了从表.
#15
我现在在家,不能调试程序,所以还不知否是没主键的原因,不过我记得没有设主从表啊,
#16
这个问题在我以前做的程序里曾经有过,我记得是后来把每个表都设了主键才解决了,楼主可以试试。
#17
应该是你的adoquery1.SQL.tex语句中select后面的字段列表中没把所有关键字列出或adoquery1的字段编辑器过滤了关键字段,检查一下重试
#18
你用了異動,那麼一定有相關聯的字段,現在你只增加被異動表裡的字段數據,這肯定不行的
#19
无法定位更新行,使因为你的query在用的时候,你的源表内容发生改变,而且你又更改了query的数据,导致在提交的时候无法更新你的query,我也遇到过这种情况
#20
把所有表加了主键之后问题解决了,实在谢谢诸位了~。