为何我的DBGRID中的数据没有改变?

oldman 2001-06-26 04:37:42
我定义了两个FROM,分别为FORM1,FORM2,都有一个DBGRID,其DATASOURCE也指向同一个DATASOURCE。
我从FORM1中调用FORM2.showmodel,并在FROM2中修改DBGRID中的数据,然后关闭FROM2,回到FORM1,但FORM1中的DBGRID中的数据没有进行相应的变化。
我进行了DBGRID.refresh也不行。
...全文
123 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
武稀松 2001-06-29
  • 打赏
  • 举报
回复
.close;
.open
nbforyou 2001-06-28
  • 打赏
  • 举报
回复
DBGRID.refresh 只是刷新表格,没有刷新数据联接,你只有刷新数据联接才能从跟本上得到新的数据,dbgrid.datasource.dataset.requery;就可以了.
王集鹄 2001-06-28
  • 打赏
  • 举报
回复
用两个DataSource就可以了
不要太节约了
zjqyb 2001-06-28
  • 打赏
  • 举报
回复
在form2中用显式事务控制post


procedure Tform2.DoMywork;
begin
try
IBTransaction1.StartTransaction;
table1.open;
showmodal;
IBTransaction1.commit;
except
IBTransaction1.rollback;
end;
end;
不行改一下IBTransaction1.defaultaction//
Ibdatabase.defaultaction

oldman 2001-06-28
  • 打赏
  • 举报
回复
post没有用,换回TTable控件就没有没有问题了,可能是IBTable的BUG
NightCloud 2001-06-26
  • 打赏
  • 举报
回复
post一下先?如何,看看有没有更新
oldman 2001-06-26
  • 打赏
  • 举报
回复
指向同一个TABLE,DATASOURCE,都在另一个单独的FORM3上。
kuangning 2001-06-26
  • 打赏
  • 举报
回复
如果是指向同一个datasouce应该是要刷新的,可能在showmodel上,请问你的那个datasouce在form1中吗?
oldman 2001-06-26
  • 打赏
  • 举报
回复
都试过,table、GRID包括DATASOURCE都关开一次都不行。
只有将TABLE关开(CLOSE,OPEN)一次才行,可道理没有弄清楚啊。
注:我用的是IBTABLE控件,
oldman 2001-06-26
  • 打赏
  • 举报
回复
第一种方法我已也试过,不行。
第二种方法我觉得不是根本的解决办法。
明明TTABLE中的数据已经变化了,为什么却无法显示出来?
skimwater 2001-06-26
  • 打赏
  • 举报
回复

用DBGRID.refresh当然不行,因为数据集体没更新,可以类似方法进行更新:
若是table 就用talbe1.refresh;
若是Query就用Query1.refresh;
若是ADO控件,依次类推。
zjqyb 2001-06-26
  • 打赏
  • 举报
回复
在FORM2.showmodel后面加上:
dbgrid.datasource.dataset.refresh
或者
with dbgrid.datasource.dataset do
begin
close;
open;
end;

5,930

社区成员

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

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