ArcEngine连接SDE数据

做ArcEngine开发的系统,都会涉及连接空间数据库,这里记录一下链接方法和过程。

直接上代码:

// 用连接属性创建 propertySet 
IPropertySet propertySet = new PropertySetClass();
propertySet.SetProperty("SERVER", "cuillin");
propertySet.SetProperty("INSTANCE", "esri_sde");
propertySet.SetProperty("USER", "scott");
propertySet.SetProperty("PASSWORD", "tiger");
propertySet.SetProperty("VERSION", "SDE.DEFAULT");
propertySet.SetProperty("AUTHENTICATION_MODE", "DBMS");

// 创建 SDE 工作空间工厂,并打开工作空间
//Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.SdeWorkspaceFactory");
//var workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType);
IWorkspaceFactory workspaceFactory = new SdeWorkspaceFactory();
IWorkspace workspace = workspaceFactory.Open(propertySet, 0);

在示例中,远程的数据库工作空间链接,如通过SDE,在链接时需要设置  USER, PASSWORD, DATABASE, SERVER, INSTANCE, VERSION, HISTORICAL_NAME, HISTORICAL_TIMESTAMP, 和 AUTHENTICATION_MODE等属性。当然有些属性可以省略。

下面列出这些数据的简单描述

SERVER” – 需要连接到的SDE服务名称

INSTANCE” – 需要连接到的实例

DATABASE” – 连接的数据库名

USER” – 连接用户名

PASSWORD” – 链接用户的密码

AUTHENTICATION_MODE” – 连接凭据身份验证模式。可设置为”OSA”和”DBMS”

VERSION” – 连接到事务版本,可设置一个字符串描述事务版本的名称

HISTORICAL_NAME” – 连接到历史版本. 设置一个字符串类型的值,该值是一个历史版本的名字标示.

HISTORICAL_TIMESTAMP” – 建立一个历史事件点的版本连接,参数是表示历史时间戳的日期时间.

 备注:

1. “DATABASE”参数是可选的,但是在实际情况中如果有多个库(比如SQL Server)就要求设置该参数。

2. 假如“AUTHENTICATION_MODE”参数设置成“OSA”,则“USER”和“PASSWORD”参数则不需要设置。“OSA”表示系统身份认证,用户操作系统凭证建立数据库链接。

3. 工作空间链接只能连接到一个版本,属性参数只有三种(“VERSION”、“HISTORICAL_NAME”,“HISTORICAL_TIMESTAMP”)可以选择。


转载自:https://blog.csdn.net/mengdong_zy/article/details/8961390

You may also like...

退出移动版