您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 临夏分类信息网,免费分类信息发布

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

2024/10/22 10:03:43发布65次查看
arcgis 10.1如何连接数据库 最近在使用arcgis 10.1的数据库,在使用的过程中发现了跟以往不太一样的地方,在这里将自己的心得和想法跟大家分享一下(使用postgresql),根据使用过程,我将内容分为两个部分(这两个部分,是我在使用完分出来的,并重新整理,
arcgis 10.1如何连接数据库最近在使用arcgis 10.1的数据库,在使用的过程中发现了跟以往不太一样的地方,在这里将自己的心得和想法跟大家分享一下(使用postgresql),根据使用过程,我将内容分为两个部分(这两个部分,是我在使用完分出来的,并重新整理,其中穿插我自己的想法,欢迎大家跟我们一起交流。),10.1已经不需要安装arcgis sde了,可以通过工具直接在oracle上建立空间数据库,并且直接链接。
如何使用直连方式连接数据库1,    arcgis 10.1 统一了数据库连接,也就是不区分是空间数据库连接还是通过oledb方式的关系型数据库连接
左图为10.1下的截图,右图为10.0下的截图
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,如何创建服务,如何使用服务连接(我们明显看到连接中根本就没有服务这个选项)就是我们下来要讨论的问题。
如何使用服务的方式连接数据库服务连接的额外步骤
安装arcsde for postgresql 10.1;修改arcsde安装目录中services.sde文件和windows中的hosts文件,分别增加“esri_sde 5151/tcp”记录;创建arcsde服务。分别键入以下两个命令以完成在注册表中创建服务的工作:
sdeservice -o create -d postgresql,postgresql-x64-9.0
sdeservice -o register -d postgresql,postgresql-x64-9.0 -r admin_database -v sde启动服务。可以用“sdemon –o start”命令或从windows服务面板中启动arcsde服务;
创建连接。在catalog中只能创建直连服,因此需要使用新的create arcsde connection file gp工具来创建arcsde服务连接文件。创建成功后,在catalog中找到这个连接双击就可以打开。
通过这个工具,如果我们的数据库是arcgis 10 或者之前的,并且采用服务的方式,那么在使用10.1的时候,应该用这个工具吧(没有测试,根据向下兼容,我自己猜想)
临夏分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录