三层的数据如何做到实时刷新?(100分)

  • 主题发起人 主题发起人 TIANXU
  • 开始时间 开始时间
T

TIANXU

Unregistered / Unconfirmed
GUEST, unregistred user!
有这样一个要求:用户需要数据即时刷新。用什么方法好?我用的是TIMER,
但看了任务管理器的性能后,发现内存在不断增加。
这个程序是三层结构的,我把SQL语句写在TIMER里后,系统启动后报错:Clientdataset2:Missing data provider or data packer

如果谁能提出好的方法。实际用后不错,我再加100分。谢谢各位了!
 
报错的问题搞定了,但是实时刷新,内存在不断增加
 
Missing data provider or data packer
这个错是你cds没有连接远程dsp啊
我现在不刻意给客户定时刷新
 
我也不想给客户定时刷新,但客户这样要求啊.
昨晚做了个试验,定时刷新,发现内存在不断增加!晕啊!
 
如果Data是用out参数返回的
改成用返回值返回Data
或者在使用后赋unassigned
 
李唯的書上是不是寫有?
偶忘了.呵[8D]
 
011101:
timer 一般是做什么的?我从来没,没有用过,是不是比较有用
常常听说。
 
不要用TIMER
 
那么用什么?
 
我也在想啊!老大 我要急CRY了
 
ClientDataSet.MergeLog
 
  不知道这个问题现在解决了吗?以前我也遇到过,并且做了如下试验,希望对你能有帮助。如果你已经有了好的方法的话,能发给我吗,dreamwang@163.com。
  我的思路是从midas技术本身的优势,即能通过应用服务器来对数据进行过虑。那么我想应用服务器也能控制客户端。一、当有新数据更新之后,应用服务器向各客户端发送信息,要求更新。
if server.reqRefresh then

begin
//客户端刷新
SocketConnection1.close;
clientdataset1.close;
SocketConnection1.open;
clientdataset1.open;
end;
二、你可以在server端设置一个标识,当有数据更新那么该标识为true
server端:
function IsRefresh(IR :boolean):olevariant;
//ir用来标识是否客户端已更新过
begin
if ir then
result:=false else
result:=true;
end;

那么你在客户端只需要在timer中调用此函数,然后判断是否进行更新就行了。
更新时请注意使用如下语句:
SocketConnection1.close;
clientdataset1.close;
SocketConnection1.open;
clientdataset1.open;
希望对你有所帮助。
 
分布式中,客户端不是把数据先读到本地内存中,修改,然后再把日志及数据都提交到应用程序服务器吗,修改的结果当然一在本地表现出来了,如果你不放心可以调用服务器的refresh 或者关闭客户端数据集然后再打开就想楼上的那样,其实不必刻意的控制呀
 
后退
顶部