首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

还是弹出窗口的有关问题,求解思路

2012-04-01 
还是弹出窗口的问题,求解思路这个程序,在几十台机器上跑;数据库里有一张表table1,table1有2个字段:no1,no2

还是弹出窗口的问题,求解思路
这个程序,在几十台机器上跑;数据库里有一张表table1,table1有2个字段:no1,no2(时间类型的);不定时的table1会更新,更新时若no1没有则插入一条新的no1,no2,其中no2是插入时的时间(也就是当时的最新时间),若no1已经存在则改写该no1的no2为当时的最新时间; 

现在需要在table1一旦发生插入或改写的记录的时候,这个程序就要弹出一个窗口一会儿然后自动消失,这里这个弹出的窗口显示的就是这条发生插入或改写的记录信息,而且,只需要显示一次,第二次就不要显示了,还有,若中途程序退出了,过了一段时间再运行程序,而在5分钟之前有发生过插入或改写的记录,那也不要显示了,因为这条记录过时了。最初想用个标志位放进table1里面,若发生插入或改写时就把这个标志位写为1,程序读取到标志位为1的记录后再改写为0,但是程序的实际使用数目不确定,若用几十个标志位不合理,程序也写得麻烦。然后想了用这条查询语句: 

select * from table1 where no2>dateadd(second,-20,getdate()) and no2 <dateadd(second,20,getdate()) 

所有程序都是15秒一次执行这条语句,虽然所有程序执行这条语句的时间并不同步,但程序数目多少应该不是问题,我的问题是,从数据表方面来想或者程序方面来想,是否还有更好的方法呢?因为这个方法有点偷懒。

[解决办法]
第一你可以在插入或改写数据后就弹出窗口,自然不存在重复显示问题

第二5分钟问题

程序每次关闭前,都将关闭的时间等信息记录在一个文件里(如ini文件),启动时判断关闭的时间,决定那些数据需要显示,那些不需要.

OK
[解决办法]
这个与数据库有关,如果你是用的是interbase,就可以用IBEvents1控件,当数据库中有数据变化时,它会向系统发一个消息。这样就不用15秒去扫描了,其它数据库也应该有这个功能,我不熟悉。
[解决办法]
方法可以有很多,我想知道,你这样设计的是初需求是什么,或者说你是为了解决什么问题,而这样设计你的系统?
[解决办法]
这种情况最好是三层结构,这样当有数据更新时,服务器通知所有客户端弹出窗口。
5分钟问题可以用ydlchina的方法

热点排行