首页 > 数据库 >C#下ArcSDE(Oracle)图层数据变化监控实现

C#下ArcSDE(Oracle)图层数据变化监控实现

时间:2023-01-06 10:00:17浏览次数:47  
标签:args ArcSDE C# Notification cmd OK 监控 Oracle new

因业务需要对ArcSDE中单个图层的变化进行监控,在出现图形插入、删除,图形和属性修改时及时获取到发生变化的要素。

研究了一下可以通过C#进行监控。

核心代码如下:

string sqlSelect = "select TBID, TBBH, st_astext(shape) as shp  from YSWFTB_2000 ";
OracleConnection con = new OracleConnection(constr);
OracleCommand cmd = new OracleCommand(sql, con);
con.Open();

cmd.AddRowid = true;
OracleDependency dep = new OracleDependency(cmd);
cmd.Notification.IsNotifiedOnce = false;
//是否在一次Notification后立即移除此次注册
cmd.Notification.IsNotifiedOnce = false;
//此次注册的超时时间(秒),超过此时间,注册将被自动移除。0表示不超时。
cmd.Notification.Timeout = 0;
//False表示Notification将被存于内存中,True表示存于数据库中,选择True可以保证即便数据库重启之后,消息仍然不会丢失
cmd.Notification.IsPersistent = true;

dep.OnChange += new OnChangeEventHandler(OnMyNotificaton);


public void OnMyNotificaton(object src, OracleNotificationEventArgs args) 
{
            
            if (args.Info == OracleNotificationInfo.Insert)
            {
                DataTable changeDetails = args.Details;
                 MessageBox.Show("要素插入.", "Notification Alert",
                 MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else if (args.Info == OracleNotificationInfo.Update)
            {
                MessageBox.Show("要素修改", "变化监控",
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

            else if (args.Info == OracleNotificationInfo.Delete)
            {
                MessageBox.Show("要素删除", "变化监控",
              MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

}

  

标签:args,ArcSDE,C#,Notification,cmd,OK,监控,Oracle,new
From: https://www.cnblogs.com/ITGIS/p/17029544.html

相关文章

  • Object.defineproperty方法 给一个对象追加属性的方法
    Object.definepropertyletnumber=18letperson={name:"张三",sex:"男"}Object.defineproperty(person,'age',{value:18,enumerable:true,//控制是......
  • Reflection
    packagecom.tenpay.risk.aml.cdd.batch.apisvr.core.basic;importlombok.Data;importorg.junit.jupiter.api.Test;importjava.io.Serializable;importjava.lan......
  • jmxterm 基于jmx 的开源cli 工具
    实际上就是一个类似jconsole的可选工具,还是很不错的,使用简单,比如适合在linux以及对于容器环境参考使用下载 直接通过官方地址就可以了运行说明apachekafka......
  • weblogic-SSRF漏洞
    漏洞出现位置与解决方法Weblogic服务端请求伪造漏洞出现在uddi组件(所以安装Weblogic时如果没有选择uddi组件那么就不会有该漏洞),更准确地说是uudi包实现包uddiexplorer.war......
  • JAVA调用SAP RFC接口
    java要调用SAPRFC接口时,需要用到sapjco3.jar架包;windows下还需要将文件sapjco3.dll文件放到system32的目录下;linux下同样需要把sapjco3.so放入项目的执行目录下;下载......
  • weblogic任意文件上传(CVE-2018-2894)
    漏洞描述Weblogic管理端未授权的两个页面存在任意文件上传漏洞,通过这两个页面可以获取到服务器权限。这两个页面分别是/ws_utc/begin.do,/ws_utc/config.do。利用这两个页......
  • springMVC常用注解介绍
    @Controller注解一个类表示控制器,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model......
  • ESP32 I2C 总线主模式通信程序
    一、概述这里主要是记录ESP32中进行I2C通行的基本程序,也可以说是I2C总线驱动程序,当然这里只是作为主模式,从模式我还没需要这个需求,以后有机会贴上。此笔记的主要目......
  • C# 注释 各个关键字段 使用说明
    https://www.cnblogs.com/xdot/p/6632313.html#:~:text=%E5%9C%A8C%23%E6%99%BA%E8%83%BD%E6%B3%A8%E9%87%8A%E6%97%B6%EF%BC%8C%E5%B8%B8%E5%B8%B8%E5%B8%8C%E6%9C%9B%E5%......
  • Docker常用命令
    Docker的常用命令帮助命令dockerversion #显示docker的版本信息dockerinfo   #显示docker的系统信息,包括镜像和容器的数量docker --help #万能命令帮助......