DBGrid控件(连Table)添加新记录时显示顺序不正常

cybercobra 2000-08-07 04:02:00
一段程序中要修改的有两个表,一为主表,一为明细表,主表通过几个DBEdit连一个Query进行修改,明细表则通过一个DBGrid连一个Table进行修改,Table和Query的CachedUpdated均设为True,明细表中的记录通过"ino"域与主表相对应,即主表的一条记录可对应明细表中的多条记录,主表里增加一条记录同时也要对明细表增加数条记录,遇到的问题具体表现如下:
当对主表进行修改时在明细表中添加数据,则出错:假设在该明细表中有1、2两条记录,在添加第三条记录时一切正常,记录显示顺序为1,2,3;但当用Tab键移出第三条记录时排列顺序变为3,1,2;光标定位在第一条记录的第一个域上,这时要添加第四条记录就要用Tab键移动到第二条记录后面,但移出第四条记录时排列顺序又变为4,3,1,2;将所做的更改Post后又恢复正常,按1,2,3,4显示。然而在对主表增加新记录时在明细表中添加新记录则一切正常,没有错序现象;比较Edit和Insert两部分除了一个是Query.Edit另一个是Query.Insert并没有发现什么不同。
按理说采用CachedUpdated方式排列顺序始终按缓冲区内的顺序显示即始终是1,2,3,4;在下翻遍了DBGrid的属性和相关的事件也未能找到原因,百思不得其解之下只好在这里向各位大虾请教,多谢!多谢!!!
...全文
116 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cybercobra 2000-08-08
  • 打赏
  • 举报
回复
问题已解决,多谢!多谢!!!
lotto 2000-08-07
  • 打赏
  • 举报
回复
我曾经遇到过相同的问题,解决办法如下:
为明细表建立索引,如果一个字段还不能表示唯一条记录,就多建几个索引,特别是要关于你区别记录顺序的字段建立索引。
建立索引只是第一步,你还要在与明细表关联的Table的Indexfields属性指定这些索引,多个字段之间用分号隔开,设置完成后将Table的Active设置为True,如果没有错误,就编译程序,大功告成啦,如果有错误表示你索引设置不对。
如还有问题请mail至:lotto@njjxrj.com

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧