刷新出错是为什么呀(50分)

  • 主题发起人 主题发起人 zytzjx
  • 开始时间 开始时间
Z

zytzjx

Unregistered / Unconfirmed
GUEST, unregistred user!
我用delphi6.0与ACCESS2000用ADOQuery来开发,用到了一个DBNavigator,最后一个刷新,一点就出错
出错对话框是这样的
Debugger Exception Notification
project zhERP.Exe raised exception class EOleException with message '缺少更新或刷新的键列信息。',
Process stopped.Use step or Run to continue.
view CPU Window
OK Help
这是怎么会事呀?
别的几张表我也是一样的用法,就可以,唯有这一张不行,为什么呀?
 
你可以自己写刷新事件,也就是用ADOQuery.requery
 
是否索引键值重复?
 
关键字没有输入??

以前我也碰到过,把 刷新 按钮去掉

在属性窗口的 visibleButtons 中将 nbRefresh 设为 false;

也没什么用,可能是 BDE 的产物.
 
我没有用索引呀,我也没有用关键字的,我把表中的所有字段删除了就可以刷新的,但是有一条记录就不行,真是怪呀
 
有两个问题:
1、refresh前没有post或没有修改记录会出现这种错误。
2、没有建立索引也会出现这种错误。
 
我的没有POST之后的,也会的
 
数据库设计的问题吧
1.要有主键
2.不要设默认值,特别是数值型字段
 
楼上的兄弟说的可能是对的,我试一下,别的有主键的,唯有这张表没有
 
不是这个原因,有谁知道呀,我今天加了还是不行的
 
把 刷新 按钮去掉
 
>>不是这个原因,有谁知道呀,我今天加了还是不行的
用我的方法不行吗???
还有,有可能是你的SQL语句写的不好,一般是因为JOIN没有连接全,或者是连接出来以后
有重复的多条记录。
 
我这个没有用到什么别的,就是 select * from Sell,就这一句的,这就是一个简单的表的
 
我遇到过,因为急着用,就先用
query.close;
query.open;
具体原因不明,不过提示来看应该和主键有点关系。
 
建议你给表建立一个关键字。

你可以自己写刷新事件,也就是用ADOQuery.requery
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
我試過了,是數據庫沒有主索引造成的,一定是的!!!!!!!!
此問題討論到此結束。。。OK?
 
多人接受答案了。
 
我想请教一个问题:就是Select * from TableName where 这个后面怎么写的问题:我的表中有一个字段叫编号
用户可以增加。也就是where 编号= x1 or 编号 = x2 or 编号=xn;有n个,这完全是用户来定的。怎么写最简单呀
 
后退
顶部