如何连接空间数据库?

【摘要】本文介绍如何利用ArcCatalog和C#代码连接Oracle ArcSDE空间数据库。

进行ArcSDE的管理和开发,首先必须知道如何连接到空间数据库。连接到ArcSDE实际上主要包括两种形式:三层模式和二层模式。三层模式即客户端直接连接到ArcSDE服务,然后由ArcSDE服务处理与空间数据库的连接。二层模式又叫直接连接模式(direct connection),即客户端直接连接到空间数据库。二层模式具备更好的灵活性,但是客户端负载增加;三层模式下客户端几乎无负载,但是需要在服务器上配置和管理ArcSDE服务。

下列情况下可以考虑使用二层连接方式:

  • 懒得去管理ArcSDE服务
  • 需要较少服务器的负载
  • 连接到ArcSDE个人数据库时

下列情况下可以考虑使用三层连接模式:

  • 客户端机器资源不够
  • 客户端与服务器发行版本不一致
  • 懒得为每个客户端配置服务器连接

以下说明如何通过ArcCatalog以二层直接连接的方式连接ArcSDE数据库

1、点击“开始/ArcGIS/ArcCatalog”菜单,启动ArcCatalog软件。在左侧导航树中找到“数据库连接”菜单并选择。选择该菜单后,右侧详细窗口将显示已有连接(如图2.1所示)。

clip_image002

图2.1 配置数据库连接(一)

2、双击“添加 空间数据库连接”,系统显示数据库配置对话框(如图2.2所示)。依次填入服务、用户名和密码,并点击“确定”按钮。

clip_image004

图2.2 配置数据库连接(二)

注意,如果使用Oracle10g,那么服务必须填写“sde:oracle10g”;如果使用Oracle9i,那么服务必须填写“sde:oracle9i”。用户名即数据库中配置的用户名称。口令使用“password@db_net_service_name”。例如:

用户名:   user1

密码:      password1@dbname1

默认连接到的版本是“SDE.DEFAULT”,如果需要连接其他版本,可以选择更改来选择版本名称。也可以使用“测试连接”按钮来测试配置的正确性。

3、修改连接名称,并按下回车键(如图2.3所示)。以后双击该连接名称既可以连接到该数据库。如果在该连接上点击鼠标右键,可以看到“属性”菜单,可以看到其中的名称形如:

C:/Documents and Settings/hexy/Application Data/ESRI/ArcCatalog/test1@dbname.sde

实际上,整个连接的所有配置信息已经存储到该sde文件中,程序代码也可以直接使用该文件来连接数据库。

clip_image006

图2.3 配置数据库连接(三)

以下说明如何通过程序代码(C# 语言)来连接到空间数据库。可以看到,程序代码设置的信息跟使用ArcCatalog配置数据库连接是类似的,也需要设置用户名(user1)、密码(password1)、数据库名称(dbname1)、服务器地址(localhost)、实例名(sde:oracle10g)、版本号(SDE.DEFAULT)。

string userName = "user1", password = "password1", userDbName = "dbname1";

ESRI.ArcGIS.esriSystem.IPropertySet propertySet = new ESRI.ArcGIS.esriSystem.PropertySetClass();

propertySet.SetProperty("SERVER", "LOCALHOST");

propertySet.SetProperty("INSTANCE", "sde:oracle10g");

propertySet.SetProperty("USER", userName);

string pwd = password + "@" + userDbName;

propertySet.SetProperty("PASSWORD", pwd);

propertySet.SetProperty("VERSION", "SDE.DEFAULT");

ESRI.ArcGIS.Geodatabase.IWorkspaceFactory factory = new ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass();

IWorkspace ws = factory.Open(propertySet, 0);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值