关系类处理专题之创建关系类|RelationShipClass
/// <summary>
/// 存在于数据库中的数据集中
/// </summary>
/// <param name="mdbPath">数据库路径</param>
/// <param name="ORIFClassName">源要素类的名称</param>
/// <param name="DESFClassName">目标要素类的名称</param>
/// <param name="DatasetName">所在数据集的名称</param>
/// <param name="newRSClassName">生成的关系类的名称</param>
/// <param name="PrimaryKey">源表主键</param>
/// <param name="ForeignKey">源表外键</param>
/// <param name="isComposite">是否复合关系</param>
public void createRelationShipClass(string mdbPath, string ORIFClassName, string DESFClassName, string DatasetName, string newRSClassName, string PrimaryKey, string ForeignKey, bool isComposite)
{
IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactoryClass();
IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(mdbPath, 0);
IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
IFeatureClass pFeatureClassORI = pFeatureWorkspace.OpenFeatureClass(ORIFClassName);
IFeatureClass pFeatureClassDES = pFeatureWorkspace.OpenFeatureClass(DESFClassName);
IFeatureDataset pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset(DatasetName);
IRelationshipClassContainer pRSCContainer = pFeatureDataset as IRelationshipClassContainer; IRelationshipClass pRelationshipClass = pRSCContainer.CreateRelationshipClass(
newRSClassName, //生成的关系类的名称
pFeatureClassORI, // 参与生成的源要素类/表
pFeatureClassDES, //参与生成的目标要素类/表
"",
"",
esriRelCardinality.esriRelCardinalityOneToMany, //表间关系
esriRelNotification.esriRelNotificationForward, //通知???
isComposite, //是否复合关系
false, //是否添加属性表
null, //字段集信息
PrimaryKey, //源表主键
"",
ForeignKey, //源表外键
"");
}
/*测试数据*****
string mdbPath = "c:/Users/Administrator/Desktop/GXLTest.mdb";
string ORIFClassName="zd";
string DESFClassName="zrz";
string DatasetName="GXL";
string newRSClassName="relation1";
string PrimaryKey="zddm";
string ForeignKey = "zddm";
bool isComposite = true;
createRelationShipClass(mdbPath,ORIFClassName,DESFClassName,DatasetName,newRSClassName,PrimaryKey,ForeignKey,isComposite);
*/
使用测试文件
提取密码:3td1
创建完成之后,在Arcmap中删除zd中的图块,则他所对应的zrz图块也随之删除
关系类处理专题之创建关系类|RelationShipClass的更多相关文章
- 编写Java程序,使用ThreadLocal类,项目中创建账户类 Account,类中包括账户名称name、 ThreadLocal 类的引用变量amount,表示存款
查看本章节 查看作业目录 需求说明: 某用户共有两张银行卡,账户名称相同,但卡号和余额不同.模拟用户使用这两张银行卡进行消费的过程,并打印出消费明细 实现思路: 项目中创建账户类 Account,类中 ...
- File类的特点?如何创建File类对象?Java中如何操作文件内容,什么是Io流Io流如何读取和写入文件?字节缓冲流使用原则?
重难点提示 学习目标 1.能够了解File类的特点(存在的意义,构造方法,常见方法) 2.能够了解什么是IO流以及分类(IO流的概述以及分类) 3.能够掌握字节输出流的使用(继承体系结构介绍以及常见的 ...
- MFC编程入门之八(对话框:创建对话框类和添加控件变量)
创建好对话框资源后要做的就是生成对话框类了.生成对话框类主要包括新建对话框类.添加控件变量和控件的消息处理函数. 例程Addition是基于对话框的程序,所以程序自动创建了对话框模板IDD_ADDIT ...
- C++_类继承1-从一个简单的类开始
面向对象编程的主要目的之一是:提供可重用的代码.尤其是项目很庞大的时候,重用测试过的代码比重新编码代码要好得多. C++提供了更高层次的重用性.其中之一就是继承这个概念. 一些厂商提供了类库.类库由类 ...
- 一.OC基础之:1,OC语言的前世今生 ,2,OC语言入门,3,OC语言与C的差异,4,面向对象,5,类和对象的抽象关系,6,类的代码创建,7,类的成员组成及访问
1,OC语言的前世今生 , 一, 在20世纪80年代早期,布莱德.麦克(Brad Cox)设计了OC语言,它在C语言的基础上增加了一层,这意味着对C进行了扩展,从而创造出一门新的程序设计语言,支持对象 ...
- python 面向对象专题(二):类的空间问题、类与对象之间的关系、类与类之间的关系
https://www.cnblogs.com/liubing8/p/11308127.html 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 ...
- Java中类的创建及类与对象的关系
//import java.util.Scanner; //创建一个类 class Person{ //属性和方法的定义不是必须的 //属性 String name ; int age ; //方法 ...
- UML类图的6大关系
<小酌重构系列>已经完成了大约1/3了,在这些文章中,我使用了一些简单的类图来描述重构策略.在之后的文章中,我可能会借助稍微复杂一些的UML类图来介绍.但是在此之前,我觉得有必要先介绍一下 ...
- PHP类和对象之间的关系
类是对象的描述: 类和对象之间的关系类似于建房子的图纸和房子: 创建类--new对象--用对象: 一.对象的两个特性: --对象的行为(功能):可以对对象施加操作,例如,电视机的开.关.转换频道: - ...
- 类图和对象图教程-类(Class)、接口(Interface)、协作(collaboration)、依赖关系(Dependency)、泛化关系(Generalization)、关联关系(Association)以及实现关系(Realization)
类图的概念 (转) 一.概述 类图(Class Diagram)是描述类.接口.协作以及它们之间关系的图,用来显示系统中各个类的静态结构.类图是定义其他图的基础,在类图基础上,可以使用状态图.协作图. ...
随机推荐
- redis+token实现一个账号只能一个人登录
自己在闲着没事的时候,突然想到了这么一个小功能,于是决定练习一下,首先想到的是如果一个账号只能一个人登录,可能会出现两个情况,一种是后登录者把前者的账号顶替掉,还有一种就是后者登录的时候会有提示当前账 ...
- js 判断表格的值
<!DOCTYPE html> <html> <head> <title></title> <meta charset="u ...
- CSP2022 J2参考解析
目录 P8813 [CSP-J2022] 乘方 P8814 [CSP-J2022] 解密 P8815 [CSP-J2022] 逻辑表达式 P8816 [CSP-J2022] 上升点列 题目传送: P8 ...
- Ajax后台传数组参数,接收不到报错!
var Gid = ""; var Name = ""; var strGid = []; var strName = []; for (var i = 0; ...
- SQL server 清空数据库所有表
use [数据库名]GOdeclare @sql varchar(8000)while (select count(*) from sysobjects where type='U')>0beg ...
- js常用遍历理解
1.for循环用于数组的遍历循环. 2.for in 循环主要用于遍历普通对象,i 代表对象的 key 值,a[i] 代表对应的 value. 3.forEach循环 遍历数组中的每一项,没有返回值, ...
- SQL----EXISTS 关键字EXISTS基本意思
1.EXISTS基本意思 英语解释就是存在,不过他的意思也差不多,相当于存在量词'З'.他不返回数据的,当后带带的查询为空值是,返回"FALSE",非空则返回"TRUE& ...
- 群晖Video Station不支持部分视频的解释
网络上都是替换ffmpeg插件的做法,无非就是替换了3个文件,然后再对其中一个文件进行修改. 然而在DSM7.0.1+VS3.0.2中,这个方法根本无用,最好的结果是之前无法播放的视频播放起来转圈圈而 ...
- bzoj 3603
考虑转化问题:一个点相邻元素中有偶数个$1$等价于一个点与相邻元素异或和为$0$ 于是直接列出异或方程组求解即可 注意由于要求不允许出现全0矩阵,因此如果有自由元直接给成$1$ 贴代码: #inclu ...
- plsql链接oracle
安装两个oracle文件夹在一个database中,安装plsql 要先配置两个都要修改,不然会找不到服务器 管理员运行 监听服务/监听位置和数据库服务都要修改 ass文件---监听程序配置 和本场 ...