目录
ArcGIS 10.1如何连接数据库
如何使用直连方式连接数据库
如何使用服务的方式连接数据库
首页 数据库 mysql教程 ArcGIS 10.1 如何连接数据库(转)

ArcGIS 10.1 如何连接数据库(转)

Jun 07, 2016 pm 03:10 PM
arcgis ht 如何 数据库 连接

如何连接数据库 最近在使用ArcGIS 10.1的数据库,在使用的过程中发现了跟以往不太一样的地方,在这里将自己的心得和想法跟大家分享一下(使用Postgresql),根据使用过程,我将内容分为

相关mysql视频教程推荐:《mysql教程

ArcGIS 10.1如何连接数据库

最近在使用ArcGIS 10.1的数据库,在使用的过程中发现了跟以往不太一样的地方,在这里将自己的心得和想法跟大家分享一下(使用Postgresql),根据使用过程,我将内容分为两个部分(这两个部分,是我在使用完分出来的,并重新整理,其中穿插我自己的想法,欢迎大家跟我们一起交流。)

如何使用直连方式连接数据库

1,    ArcGIS 10.1 统一了数据库连接,也就是不区分是空间数据库连接还是通过OLEDB方式的关系型数据库连接

2, 在Catalog中只能采用直连方式;

3, ArcGIS 10.1版本中,Esri提供的安装介质不在包含Postgresql(以前的是包含的);

4, 安装Postgresql,官方给的软件要求是64位数,而且所有的企业级数据库都是64位(这应该和Server有关系吧,因为Server 10.1是纯64位,在桌面软件的DatabaseSupport目录中给出的几个dll都是64位,这几个dll 后面会用到,官方给的软件需求如下:

Database 
Supported Operating Systems 
Minimum OS Version 
Maximum OS Version 
PostgreSQL 9.0.5 (64-bit)
Red Hat Enterprise Linux Server 5 (64-bit)
Update 7
Red Hat Enterprise Linux Server 6 (64-bit)
SUSE Linux Enterprise Server 11 (64-bit)
SP1
Windows Server 2003 Standard, Enterprise, and Datacenter (64-bit [EM64T])
SP2
SP2
Windows Server 2008 R2 Standard, Enterprise, and Datacenter (64-bit [EM64T])
SP1
登录后复制

5, 配置PostgreSQL的客户端。因为直连方式要求ArcSDE的客户端必须安装数据库的客户端类库,所以首先需要获取PostgreSQL的客户端。ArcGIS Desktop是32位软件,需要的是32位的PostgreSQL类库。找到PostgreSQL的客户端,或者在别的机器上将32位的 libeay32.dll, libiconv-2.dll, libintl-8.dll, libpq.dll, and ssleay32.dll文件拷贝到Desktop 安装目录的bin目录下;

6, 拷贝 st_geometry.dll,将Desktop 安装目录下的DatabaseSupport/PostgreSQL/Windows64(看到64了吧)目录下,拷贝st_geometry.dll文件到PostgreSQL的lib目录。在PostgreSQL中创建Geodatabase时必须用到此类库;

7, 配置pg_hba.conf,修改PostgreSQ 的pg_hba.conf文件,添加“host all all 0.0.0.0/0 md5”(关于该文件的配置,可以参阅相关资料);

8, 在安装完SDE后,发现没有以往的post界面,在10.1中,对于创建企业级Geodatabase都采用工具箱中提供的工具,换句话说,以前的post被Toolbox中的一堆工具替代;

9, 创建地理数据库

10.1在创建地理数据库的时候,提供了三个,Oracle,SQL Server和Postgresql,我们用这个工具创建地理数据库,这个过程相当于早起的POST过程,创建数据库并写入一堆系统表等,创建界面如下图:

创建成功后就可以在pgAdmin中看到sde这个数据库,并且看到很多系统表,如下图:

10, 连接地理数据(直连);

在上面说了ArcGIS 10.1对数据库连接做了统一,那如何判断是关系型数据库还是空间数据库呢?其实这点并不难,因为在创建空间数据库的时候,我们同时创建了用户名和密码,那么用这个用户名连接,并选择创建的这个数据库,那么这个数据库就是空间数据库。

连接成功后,我在数据库里创建了要素数据集添加了几个数据,做了一个拓扑分析(做这个的目的不是为了做拓扑,而是为了验证能否做拓扑分析,所以拓扑分析的结果我们不做讨论),结果如下:

同理,做了一个几何网络。

现在我们想一个问题,上面我们使用的是直连的方式访问数据库,大家觉得是否缺少什么呢?我们会想以前如何使用数据库的,首先装了关系型数据库(Postgresql),这一步我们有了,然后就是安装ArcGIS SDE for postgresql,这一步我们没有,然后就是创建数据库,连接数据库。从整个过程来看,我们没有安装SDE,那为什么也可以创建空间数据库呢?

这也是我自己发现的一个,在开始的时候,我的确是安装了SDE,但是我发现这个安装不想ArcGIS 10 或者之前的弹出一个post的界面,装了之后什么反应都没有,我去安装目录下看了看,发现这个安装其实就是解压了一些东西,而我的空间数据库还没有建立呢?再后来发现连接数据库的时候,没有服务这个选项,当初我就觉得这个安装跟我连接数据库没有关系,于是卸载了,根据:

http://resources.arcgis.com/en/help/main/10.1/index.html#/Setting_up_a_geodatabase_in_PostgreSQL/002p00000001000000/
登录后复制

仔细看了一遍,发现这个过程的确不安装SDE是可以的,跟售后的同事确认了下,得出的结论:如果是使用直连方式,ArcGIS 10.1 是不用安装SDE的任何组件。新的问题来了,我们知道在以前的版本中SDE还有一种方式就是服务连接,那如何使用服务连接呢?

如果细心的话,我们可以发现在安装SDE的时候,有两个组件让我们安装:

根据组件右边的描述,我们知道这个安装就是针对服务连接的,也就是说如果要使用服务方式连接,就需要安装SDE,如何创建服务,如何使用服务连接(我们明显看到连接中根本就没有服务这个选项)就是我们下来要讨论的问题。

如何使用服务的方式连接数据库

服务连接的额外步骤

  1. 安装ArcSDE for PostgreSQL 10.1;

  2. 修改ArcSDE安装目录中services.sde文件和Windows中的hosts文件,分别增加“esri_sde 5151/tcp”记录;

  3. 创建ArcSDE服务。分别键入以下两个命令以完成在注册表中创建服务的工作:
    sdeservice -o create -d POSTGRESQL,postgresql-x64-9.0
    sdeservice -o register -d POSTGRESQL,postgresql-x64-9.0 -r ADMIN_DATABASE -v sde

  4. 启动服务。可以用“sdemon –o start”命令或从Windows服务面板中启动ArcSDE服务;

  5. 创建连接。在catalog中只能创建直连服,因此需要使用新的Create ArcSDE Connection File GP工具来创建ArcSDE服务连接文件。创建成功后,在catalog中找到这个连接双击就可以打开。

通过这个工具,如果我们的数据库是ArcGIS 10 或者之前的,并且采用服务的方式,那么在使用10.1的时候,应该用这个工具吧(没有测试,根据向下兼容,我自己猜想)

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1659
14
CakePHP 教程
1415
52
Laravel 教程
1310
25
PHP教程
1258
29
C# 教程
1232
24
iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 Jul 18, 2024 am 05:48 AM

苹果公司最新发布的iOS18、iPadOS18以及macOSSequoia系统为Photos应用增添了一项重要功能,旨在帮助用户轻松恢复因各种原因丢失或损坏的照片和视频。这项新功能在Photos应用的"工具"部分引入了一个名为"已恢复"的相册,当用户设备中存在未纳入其照片库的图片或视频时,该相册将自动显示。"已恢复"相册的出现为因数据库损坏、相机应用未正确保存至照片库或第三方应用管理照片库时照片和视频丢失提供了解决方案。用户只需简单几步

Hibernate 如何实现多态映射? Hibernate 如何实现多态映射? Apr 17, 2024 pm 12:09 PM

Hibernate多态映射可映射继承类到数据库,提供以下映射类型:joined-subclass:为子类创建单独表,包含父类所有列。table-per-class:为子类创建单独表,仅包含子类特有列。union-subclass:类似joined-subclass,但父类表联合所有子类列。

在PHP中使用MySQLi建立数据库连接的详尽教程 在PHP中使用MySQLi建立数据库连接的详尽教程 Jun 04, 2024 pm 01:42 PM

如何在PHP中使用MySQLi建立数据库连接:包含MySQLi扩展(require_once)创建连接函数(functionconnect_to_db)调用连接函数($conn=connect_to_db())执行查询($result=$conn->query())关闭连接($conn->close())

如何在PHP中处理数据库连接错误 如何在PHP中处理数据库连接错误 Jun 05, 2024 pm 02:16 PM

PHP中处理数据库连接报错,可以使用以下步骤:使用mysqli_connect_errno()获取错误代码。使用mysqli_connect_error()获取错误消息。通过捕获并记录这些错误信息,可以轻松识别并解决数据库连接问题,确保应用程序的顺畅运行。

如何在 Golang 中使用数据库回调函数? 如何在 Golang 中使用数据库回调函数? Jun 03, 2024 pm 02:20 PM

在Golang中使用数据库回调函数可以实现:在指定数据库操作完成后执行自定义代码。通过单独的函数添加自定义行为,无需编写额外代码。回调函数可用于插入、更新、删除和查询操作。必须使用sql.Exec、sql.QueryRow或sql.Query函数才能使用回调函数。

如何用 Golang 连接远程数据库? 如何用 Golang 连接远程数据库? Jun 01, 2024 pm 08:31 PM

通过Go标准库database/sql包,可以连接到MySQL、PostgreSQL或SQLite等远程数据库:创建包含数据库连接信息的连接字符串。使用sql.Open()函数打开数据库连接。执行SQL查询和插入操作等数据库操作。使用defer关闭数据库连接以释放资源。

如何在 Golang 中将 JSON 数据保存到数据库中? 如何在 Golang 中将 JSON 数据保存到数据库中? Jun 06, 2024 am 11:24 AM

可以通过使用gjson库或json.Unmarshal函数将JSON数据保存到MySQL数据库中。gjson库提供了方便的方法来解析JSON字段,而json.Unmarshal函数需要一个目标类型指针来解组JSON数据。这两种方法都需要准备SQL语句和执行插入操作来将数据持久化到数据库中。

如何使用C++处理数据库连接和操作? 如何使用C++处理数据库连接和操作? Jun 01, 2024 pm 07:24 PM

在C++中使用DataAccessObjects(DAO)库连接和操作数据库,包括建立数据库连接、执行SQL查询、插入新记录和更新现有记录。具体步骤为:1.包含必要的库语句;2.打开数据库文件;3.创建Recordset对象执行SQL查询或操作数据;4.遍历结果或按照具体需求更新记录。

See all articles