如何知道数据库的更新(50分)

  • 主题发起人 主题发起人 wyw1
  • 开始时间 开始时间
W

wyw1

Unregistered / Unconfirmed
GUEST, unregistred user!
有一台sun的数据库服务器
两个终端,一个终端向数据库中写数据,另一个从数据库中读
当其中的一个终端向数据库写了一些记录的时候
在另一个终端的界面上,怎么样才能实时的更新呢?
不是手工的去打开关闭表格
而是自动的知道(比如通过检测某个属性等)
 
写入数据 --> 建立事务通知 --> 发出消息,通知可接受程序 --> 刷新数据

刷新时间/1~5秒
 
開個線程定時刷新!處理好不會影執行速度...
 
当一台机器写入数据时,我想在没有通知我的情况下,
通过sun机制直接知道数据库的更新
 
wyw和wyw1有暗昧关系!
 
energy
你眼睛好毒哇
 
可以实现corba的通讯机制吗?
 
看看数据库表的建立时间,或者实时检测数据库的写时间,将新就两时间相比,就可以知道是否更新,如果更新,将新的数据库复制到就数据库中,将原来的数据库覆盖。
 
但是怎么样检测写时间呢?
 
that is the time of the database file!
 
还是在更新数据时,发个消息比较好,免得Client2老是要刷新,占用资源
 
在ddatabase和application中建立一个notify_server用于刷新数据,
或者有一个属性可以保持数据同步.
 
用事务处理
两端都有 database 控件。
服务器端
database。starttrasction;

database。commit;
客户端 如下在 time 的ontime 事件中
database。transisolation:=tireadcommited;
database。refresh;
 
与其实时检测数据库的写时间,不如定时刷新。
 
我作过类似项目,其实很简单:
1.在数据库中建立一个表格,该表格中只有一个字段:
refreshId int
2.在相关表上建立trigger,每当这些表进行了INSERt、UPDATE、DELETE的时候,就将refreshId字段的值加1。
3。同样在本地建立一个表,该表也有相同字段
其值为本地检测到的最大refreshId
4。当然,您在本地还得专门写一程序,定时巡检数据库中的refreshId
,让它和本地库中的refresh比较,如果大于本地refreshId,则表示数据库发生了更新,接着发消息给您的应用程序,告诉它数据库已发生更新,让它更新数据即可。(别忘了更新本地库的refreshId的值)
 
接受答案了.
 
后退
顶部