当前位置: 代码迷 >> PB >> 怎么让数据窗口随后台数据变化及时刷新
  详细解决方案

怎么让数据窗口随后台数据变化及时刷新

热度:102   发布时间:2016-04-29 05:34:13.0
如何让数据窗口随后台数据变化及时刷新
w_main的数据窗口dw_1,显示姓名列表,这个列表后台不断变化,我想让它及时刷新,延迟刷新几秒也可以。
我的方法
d_name简单查询,没有filter和参数,
数据画板设置Timer Interval为1000,d_name并未按秒刷新,但点击retrieve按钮可以刷新到最新数据。

数据窗口dw_1代码:
w_main.dw_1.dataobject='d_name'
w_main.dw_1.settransobject( sqlca)
w_main.dw_1.retrieve()

getfocus()下,失败
construct下,失败
放w_main.open下也失败
最笨的办法 做了个按钮w_main.ck_1,代码放click。也未能刷新。
每次重启应用,能显示最新数据。

有什么好办法吗?谢谢!


------解决方案--------------------
引用:
Quote: 引用:

有点怀疑你的autocommit值是false,然后数据库的隔离级别是read committed

autocommit值是false,可是为什么重启能取到?
子窗口插入数据关闭后,在主窗口也能看到插入的行?
子窗口cb_1按钮代码:

close(parent)

w_main.dw_1.dataobject='d_NAME'
w_main.dw_1.settransobject( sqlca)
w_main.dw_1.retrieve()

long ll_find
ll_find=w_main.dw_1.find("id='"+ gs_id +"'",1,w_main.dw_1.rowcount())
w_main.dw_1.scrolltorow(ll_find)


重启后能读到数据是因为你的事务结束了
子窗口插入数据的地方你有commit显式的提交了事务

你把SQLCA.AutoCommit设成true吧,在需要事务的时候再改成false,事务结束改回true
  相关解决方案