起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 159|回复: 9

【结贴】外部程序如何触发x3?**

[复制链接]
发表于 2008-4-7 15:17:37 | 显示全部楼层 |阅读模式
我现在有这样一个需求:
1.我现有一个网络管理系统(非x3),当某设备温度太高时,报警并写入数据库。
2.我现在想让原系统在温度报警时,就启动x3的报警处理流程。
有一种思路是即要数据库变化就触发事件,请问该如何做呢?
我是不是可以在业务信息中数据集,数据库表字段的值改变事件写代码实现需求呢?
回复

使用道具 举报

 楼主| 发表于 2008-4-7 15:56:08 | 显示全部楼层

我试了一下,好象是不行的,

1.业务信息中,写了代码如下
procedure TGDZCGZD.DataSetZCGZZSJJFieldChange(DataSet: TDataSet; Field: TDataField);
var
   sAlarm:String;
   num:Integer;
begin
if Field.FieldName = 'Quantity' then
        begin
        num:=DataSet.FieldByName('Quantity').AsInteger;
        if num>30 then
           begin
             sAlarm:='temperature is too high! temp='+num.ToString;
             jsDialogs.ShowMsg(sAlarm,'temperature alarm');
            end
        else
           jsDialogs.ShowMsg('Field changed','temperature alarm');

end;
end;
2。建立一下窗体,DataEdit1是报警温度。
3.我测试时用sql查询分析器改变数据库表中温度值,不会有任何事件发生。没有进入到断点。
4.我觉得是窗体中改变DataEdit1,则会触发事件,但是反过来则不会。效果相似于procedure TTESTCT.DataEdit1Change(Sender: TObject);
begin
     jsDialogs.ShowMsg('Field changed by test','temperature alarm');
end;是客户端输入时改变就会触发,

请问我的需求该如何做实现呢?谢谢~!
回复 支持 反对

使用道具 举报

发表于 2008-4-7 16:08:35 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2008-4-7 16:38:08 | 显示全部楼层
楼主,感觉您的需求有点与实际脱离了,温度过高时去启动流程,得考虑一下,走流程的时间。因为温度过高了,走完流程的话,有可能机器已经烧坏了。所以楼主可以考虑去截获温度系统的底层事件,然后在x3中调用他的事件判断是否温度过高了,接着发通知给相关人员。让相关人员处理。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-7 16:41:47 | 显示全部楼层

可不可以用你开始说的insert告警表是触发呢?

可不可以用你开始说的insert告警表时触发呢?因为楼上给的是要改网络管理系统部分代码,它是不是web的都不清楚呢。若不要改以前的东西就最好,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-7 16:48:51 | 显示全部楼层

比如我定时去读数据表中温度的值,值太高就触发流程?

方法:
比如我定时去读数据表中温度的值,值太高就触发流程?
这样看上去开销太大。
或者最好是数据表中温度值改变,或报警表中新增记录时启动报警处理流程。
能够实现一种都行。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-7 17:03:33 | 显示全部楼层

回复No.4

与实际脱离了,温度过高时去启动流程。
实际上就是来一个报警时希望启动处理流程,让值班人去处理或上报领导或其他(根据报警类型及处理流程来定)。也不一定是温度报警,也可能是线路故障等,
回复 支持 反对

使用道具 举报

发表于 2008-4-7 18:22:07 | 显示全部楼层
我是这么想的,像你这种设备出了问题,肯定是很紧急的吧,很紧急的话,你通过走流程的方式来告知领导或者处理,会不会显得工作效率太低了?所以直接通知给相关人员。
至于你说的是判断表中的记录有新的值去感应,是用Timer设置一个时间间隔,多少时间去数据库获取对应表的记录,有新记录触发某一个动作。(注:强烈建议不使用这种方法,这种方法对客户端和服务端的消耗都是很大的)。
回复 支持 反对

使用道具 举报

发表于 2008-4-14 08:54:50 | 显示全部楼层
楼主可以了吗?
回复 支持 反对

使用道具 举报

发表于 2008-4-22 09:11:51 | 显示全部楼层
长时间未回馈,就先结贴了。有问题再开新帖。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-11 02:04 , Processed in 0.037683 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表