我在使用DBGrid时发生如下情况,请各位不吝赐教

icewind 2000-06-19 10:11:00
我用程序Modify一条纪录以后,在条件允许的情况下,与之相绑定的DBGrid总会将光带移动到DBGrid的中央部分,请问该如何解决(RowSelect);
...全文
250 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxh1972 2000-07-06
  • 打赏
  • 举报
回复
hank,
ziwei_99@263.net
zxh1972 2000-07-05
  • 打赏
  • 举报
回复
hank,
1. 运行Post函数,在DBGrid中显示记录的小三角立即到第一条记录,就是这样的,若想在你刚修改的位置上,需要重新对记录定位。
2. 你的程序可能有点问题,你按“保存”后,删除出问题,说明数据没存入数据库,或者没有感应到,这里的程序代码可能有点问题。
3. dbgrid记录移动,会自动激活post事件,使数据存入数据库,所以再删除就没问题了。
icewind 2000-07-05
  • 打赏
  • 举报
回复
我已解决了,例如是TTable,用两个Datasource,一个负责更新DataSourceA,一个负责显示DataSourceB,用DataSouceA更新后,Refersh一下DataSourceB,即可
多谢大家的帮助,多谢了
Hank 2000-07-05
  • 打赏
  • 举报
回复
zxh1972,你的方法固然可行,但是速度慢!
你想那种方法快,反正保存了一条记录,移动一下还怕出问题?
而且在这个问题上常规方法根本没用!它和数据库有关!
zxh1972 2000-07-05
  • 打赏
  • 举报
回复
Hank,太不文明了!保存后 (afterpost事件中)刷新一下(close;open)就好了
table1.disablecontrols;
...
modify

...
table1.close;
table1.open;
table1.locate(...); //重新定位
table1.enablecontrols;

Hank 2000-07-05
  • 打赏
  • 举报
回复
zxh1972,其实所有的方法都不可行!下面我说一下我在这方面的经历:
1、刚开始时采用BCB3.0+Access97,通过ODBC连接数据库,则会出现你说的第一种样子——运行Post函数,在DBGrid中显示记录的小三角立即到第一条记录;
2、后来在DELPHI4.0+Access97,通过ODBC连接数据库下则会出现本讨论区的问题;
3、现在用BCB5.0+Access97,通过ODBC连接数据库,那么以前的问题不会出现,但是出现了更怪的问题:新增一条记录,然后Post,在DBGrid中显示记录的小三角依然在当前记录,所有的一切都没有问题,即使此时删除也没有问题!但是,如果记录中有数值型字段,如果你不输入数据(顺便说一下,不直接输入数据的情况经常出现),那么会出现两条记录,除数值型字段的值不同(一条为空,另一条为0)外,其它是一样的,此时小三角在数值型字段的值为空的那条记录上。如果你此时删除记录,则会出现提示:
Couldn't perform the edit because another user changed the record.
而且你移动记录是没用的,即使用系统默认的移动记录增加的方法也是没用的!但是可以将数值型字段的值为0的那条记录删除,值为空的依然保留只是不能删除,当然移动记录也没用!除非将数据库关闭然后打开(这样是不是很麻烦)!但是,如果将数值型字段的值输入,根本就不会出问题。小三角也不会移动!
4、前一段时间用DELPHI5.0+Access97,通过ODBC连接数据库写了一个旅行社进出管理的小程序,又出现了本讨论区的问题;

我的机器是WIN98,DELPHI5.0和BCB5.0共存,BDE采用BCB5.0带的(比DELPHI5.0带的要新!)。

如果你不信,告诉我你的EMAIL,我给你传一个过去。
Hank 2000-06-23
  • 打赏
  • 举报
回复
你是不是用的Access 97数据库,不知什么原因,这种数据库一直存在这种问题,或者又莫名其妙好了。
刚开始的发现是:一旦运行Post函数,在DBGrid中显示记录的小三角立即到第一条记录,然而在DBEdit中如果先保存然后立即删除(鬼知道那帮同志为什么这样),则会立即报错!有时又没有!鬼知道怎么回事,后来没有办法,保存后首先移动记录就没事了(简直是鸟!)。
有此类问题的请举手!
zhouzq 2000-06-23
  • 打赏
  • 举报
回复
知道的话告诉我一下。
shylsz 2000-06-22
  • 打赏
  • 举报
回复
table1.disablecontrol;
...
modify
...
tabke1.enablecontrol;
liujinwei 2000-06-21
  • 打赏
  • 举报
回复
可以通过设置Selectedindex的值来实现
ling 2000-06-19
  • 打赏
  • 举报
回复
能描述的清楚一点吗?

5,386

社区成员

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

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