ArcEngine 连接sql server sde

本文介绍了在ArcEngine 10.1环境下连接ArcGIS SDE 10.1 for SQL Server的过程,强调了直接连接与服务连接的区别。在直接连接中,必须注意客户端与服务器端的位数匹配,而服务连接则需要通过命令行创建和开启SDE服务。此外,还提供了两种通过ArcEngine访问SDE数据的方法:通过连接文件和QueryLayer接口。
摘要由CSDN通过智能技术生成

前言

本想在soe中进行sde for sqlserver数据获取。由于soe的调试不方便,为了测试的简便,先在桌面上写了个arcengine连接sde for sqlserver的程序,但是本以为是很简单的工作,但是由于对sde知识的缺乏,还是耽误了些时间,现在把结果总结,mark一下!

环境

arcgis sde 10.1 for sqlserver,arcengine 10.1,vs2010

sde for sqlserver相关

安装和桌面的连接使用,参考esri 成都中一篇文章,http://blog.csdn.net/esrichinacd/article/details/8510224,非常好的一篇文章。作者写博客的态度非常的欣赏,让我们完全安装他的流程可以实现。努力使自己的博客也这样,在记录自己学习成果的同时,也可以对外分享帮助更多的人。

在整个的过程中,我犯了个对sde 不熟悉的错误,就是没有分清楚sde的直接连接和服务连接。

在10.1的版本,sde默认是直接连接,而直接连接需要在本机具有相对应的客户端。官方帮助给出的不同的数据库不同的客户端。 

  • IBM Data Server Run-time Client for DB2
  • Informix Connect
  • Microsoft SQL Server native client
  • Netezza ODBC 驱动程序*
  • Oracle Database Client
  • PostgreSQL libpq 文件

 

在这个过程中,必须要注意的是,由于desktop和arcengine是32位的,而arcsde 64,则服务器端为x64,而客户端为32位机器。这个问题应该是目前sde方面经常出现的问题。

直接连接

直接连接需要安装客户端,一开始我的开发机器上没有客户端,在arccatalog中连接服务器上的数据库,但是怎么都连接不上,后来才知道是由于自己没有装客户端的原因。

 图1

SDE for sqls

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
,需要对输入数据进行有效性和无效性边界值测试,以保证测试的全面性和有效性。 要在 ArcEngine 中加载 SDE 图层,需要进行以下步骤: 1. 创建一个 SdeWorkspaceFactory 对象,用3. 决策表 决策表是一种常用的黑盒测试方法,其基本思想是将软件于连接 SDE 数据库。 2. 使用 SdeWorkspaceFactory 打开 SDE 数据库,并获取 IWorkspace 接口。 3.的输入和输出之间的关系表示为一个决策表,根据决策表进行测试,以保证测试的 使用 IWorkspace 打开 SDE 数据库中的指定版本,并获取 IVersion 接口。 4. 使用 IVersion 打开 S全面性和有效性。在决策表中,需要考虑软件的各种情况和可能性,对输入DE 数据库中的指定数据集,并获取 IFeatureClass 接口。 5. 使用 IFeatureClass 对象创建一个 FeatureLayer数据进行分类和组合,以保证测试的全面性和有效性。 4. 因果图 因果图是 对象。 6. 将 FeatureLayer 对象添加到 MapControl 或 SceneControl 中,即可显示 SDE 数据库中的图一种常用的黑盒测试方法,其基本思想是通过绘制软件的因果图,分析软层。 示例代码如下: ```csharp // 创建 SDE 工作空间工厂 Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.SdeWorkspaceFactory"); IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance件的输入和输出之间的关系,以保证测试的全面性和有效性。在因果图中,需要考虑软件的各种情况和可能性,对输入数据进行分类和组合,以保证测试的全(factoryType); // 连接 SDE 数据库 IPropertySet connectionProperties = new PropertySet(); connectionProperties.SetProperty("SERVER", "面性和有效性。 5. 代码覆盖率 代码覆盖率是一种常用的白盒测试方法,sde_server_name"); connectionProperties.SetProperty("INSTANCE", "sde_instance_name"); connectionProperties.SetProperty("DATABASE", "sde_database_name"); connectionProperties.SetProperty("USER", "sde_username"); connectionProperties.SetProperty("PASSWORD", "sde_password"); connectionProperties其基本思想是通过对软件的代码进行分析和覆盖测试,以保证测试的全面性和.SetProperty("VERSION", "sde_version_name"); IWorkspace workspace = workspaceFactory.Open(connectionProperties, 0); // 获取 SDE 数据有效性。在代码覆盖率中,需要考虑软件的各种情况和可能性,对代码进行覆盖集 IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace; IFeatureClass featureClass = featureWorkspace.OpenFeatureClass("sde测试,以保证测试的全面性和有效性。 6. 路径覆盖率 路径覆盖率是一种_feature_class_name"); // 创建 FeatureLayer 对象 ILayer layer = new FeatureLayerClass(); layer.Name = "SDE Layer"; layer常用的白盒测试方法,其基本思想是通过对软件的路径进行分析和覆盖测试,以.Visible = true; ((IFeatureLayer)layer).FeatureClass = featureClass; // 添加图层到 MapControl 或 SceneControl 中 axMapControl1.AddLayer(layer); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值