有一张表格的数据是由A程序不断更新的;B程序是显示这张表格数据的程序,里面主要有
TDBGrid和TDBChart。程序B刚启动时是正常的,但表格的数据被A修改后,程序B并没有跟着刷新(我试过了TDBChart的Refresh方法,但没用)请问如何及时在程序B中看到被修改过的数据?
还有,A程序发的数据是用insert写入表格的,我要检查表格中某一个字段当insert写入的值大于临界值时就要报警,我现在是用一个定时器每秒钟检查这个字段的值,但我感觉这样效率太低了,还有什么办法吗?是不是这个字段的值一变就会引发什么事件?
TDBGrid和TDBChart。程序B刚启动时是正常的,但表格的数据被A修改后,程序B并没有跟着刷新(我试过了TDBChart的Refresh方法,但没用)请问如何及时在程序B中看到被修改过的数据?
还有,A程序发的数据是用insert写入表格的,我要检查表格中某一个字段当insert写入的值大于临界值时就要报警,我现在是用一个定时器每秒钟检查这个字段的值,但我感觉这样效率太低了,还有什么办法吗?是不是这个字段的值一变就会引发什么事件?
//为何不在insert前检查这个字段的值?另:A程序与B 程序同数据源时可以同步。
//为何不在insert前检查这个字段的值?
就是因为不知道A什么时候insert,要insert什么值,怎么在insert前检查这个字段的值?
回复 :A程序与B 程序同数据源时可以同步。
能讲清楚点吗?比如我现在手动改了.mdb的值保存了,B程序没变化呀?
关于这个你可以用触发器..很容易就搞定..
TO 楼主..
你可以把相对应的数据库联接组件CLOSE再OPEN一次..就可以了...
B程序是一直在不间断运行的,比如我现在手动改了.mdb的值保存了,B程序怎么自动刷新?我难道在B程序中每秒钟把数据库联接组件CLOSE再OPEN一次?
"关于这个你可以用触发器..很容易就搞定.."你是指DBMS的触发器吗,我用access不支持触发器吧,delphi里怎么实现触发器
2 你可以定义数据规则
cursor type设置为dynamic cursor?能讲具体点吗?不懂.
"第二个问题用SQL的规则做,超过一定范围就插不进去"这个方法不行,我要让数据插入,但是要有联动控制,比如超过临界值就报警,怎么做?
急啊,今天一天又没有成果。
"第二个问题用SQL的规则做,超过一定范围就插不进去"这个方法不行,我要让数据插入,但是要有联动控制,比如超过临界值就报警,怎么做?
你程序中A修改了表的内容,你Post后结果放映到数据库中去了。
但是你B程序中看到的仍然是你从数据库服务器上下载下来的数据表。
把你B程序中的数据集的cursor type设置为dynamic cursor可以保证你刷新数据集时可以看到修改后的数据,但你必须刷新才行。
一般你可以用计时器刷新,也可以通过消息来实现。用消息比较好
a程序修改一次就发个消息给b。让它刷新数据集。
post一般也只是反应在你下载下来的cachesize笔记录上,并未放映到数据库中去
ADOTable1.UpdateBatch可以强迫将数据集更新到数据库中。
用UpdateBatch代替post
绝对会让你对数据库软件有另一个新的认识。
难道数据被修改了后,系统就不会给什么消息吗?A程序不能改还能指望它发消息吗?另外问一下 peiweiwei(一指残) :ADO程序员参考是本书吗,全称是什么?