问一个关于MIDAS的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 zxtfyj
  • 开始时间 开始时间
Z

zxtfyj

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在做一个实时数据采集软件,采用C/S结构,服务器端用TADODataSet + TDataSetProvider,客户端用TDCOMConnection + TClientDataSet,现有两个问题请问:
1,客户端TClientDataSet的数据如何用事件触发方式刷新,即服务器端TADODataSet数据改变时要立即触发客户端TClientDataSet数据跟着改变
2,如何在客户端改变服务器端的数据,即通过客户端TClientDataSet改变服务器端TADODataSet数据
 
我现在做一个实时数据采集软件,采用C/S结构,服务器端用TADODataSet + TDataSetProvider,客户端用TDCOMConnection + TClientDataSet,现有两个问题请问:
1,客户端TClientDataSet的数据如何用事件触发方式刷新,即服务器端TADODataSet数据改变时要立即触发客户端TClientDataSet数据跟着改变
2,如何在客户端改变服务器端的数据,即通过客户端TClientDataSet改变服务器端TADODataSet数据
 
1,不会
2:
DataSetProvider的UpdateMode设置upWhereChanged
ClientDataSet.post
ClientDataSet.ApplyUpDates
 
1.采用3层结构。
2.收到数据后立即提交。
 
linuxnc
我试了
ClientDataSet.Append;
ClientDataSet.FieldByName('网关名称').AsString := '临时网关';
ClientDataSet.Post;
ClientDataSet.ApplyUpDatas(-1);
提示“灾难性故障”,帮我分析分析怎么回事
 
直接用重新提取數據。
 
kaida
我是菜鸟,能详细些吗?谢谢!
 
1.也可以用 SocketConnection , 和你用的那个方式都支持远程回调
即服务器端调用客户端的接口
2.Provider 有个属性, ResolveToDataSet 表示将数据更新到数据集
 
1、好象有点不大可能实现吧,个人认为
因为是三层架构,服务器是被动的。只能是客户端来提出刷新申请
2、ClientDataSet.Append;
ClientDataSet.FieldByName('网关名称').AsString := '临时网关';
ClientDataSet.Post;
ClientDataSet.ApplyUpDatas(-1);
这样写法是没错的,报错的可能是你的其他设置不对,你可以检查下PRIVIDERNAME等属性,如果还不行,你可以开DELPHI跟踪下,看看是哪里报错
 
补充一下:
我用的数据库是Access,‘网关数据表’含有网关序号,网关名称,IP地址,帧听端口,连接状态等字段,服务器启动时将数据表select进ADODataSet后设置ADODataSet.Connection := nil,连接状态字段实时刷新,有问题吗?
 
后退
顶部