目次
ArcGIS 10.1如何连接数据库
如何使用直连方式连接数据库
如何使用服务的方式连接数据库
ホームページ データベース mysql チュートリアル ArcGIS 10.1 如何连接数据库(转载)

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

Jun 07, 2016 pm 03:10 PM
arcgis どうやって データベース 接続する

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

ArcGIS 10.1如何连接数据库

最近在使用ArcGIS 10.1的数据库,在使用的过程中发现了跟以往不太一样的地方,在这里将自己的心得和想法跟大家分享一下(使用Postgresql),根据使用过程,我将内容分为两个部分(这两个部分,是我在使用完分出来的,并重新整理,其中穿插我自己的想法,欢迎大家跟我们一起交流。),10.1已经不需要安装arcgis sde了,可以通过工具直接在Oracle上建立空间数据库,并且直接链接。

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

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

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

                        左图为10.1下的截图,右图为10.0下的截图

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

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

 

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中的一堆工具替代;

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

9,        创建地理数据库

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

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

 

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

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

 

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

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

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

 

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

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

 

同理,做了一个几何网络,效果如下:

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的时候,有两个组件让我们安装:

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

 

根据组件右边的描述,我们知道这个安装就是针对服务连接的,也就是说如果要使用服务方式连接,就需要安装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服务;

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

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

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

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます Jul 18, 2024 am 05:48 AM

Apple の最新リリースの iOS18、iPadOS18、および macOS Sequoia システムでは、さまざまな理由で紛失または破損した写真やビデオをユーザーが簡単に回復できるように設計された重要な機能が写真アプリケーションに追加されました。この新機能では、写真アプリのツール セクションに「Recovered」というアルバムが導入され、ユーザーがデバイス上に写真ライブラリに含まれていない写真やビデオがある場合に自動的に表示されます。 「Recovered」アルバムの登場により、データベースの破損、カメラ アプリケーションが写真ライブラリに正しく保存されない、または写真ライブラリを管理するサードパーティ アプリケーションによって失われた写真やビデオに対する解決策が提供されます。ユーザーはいくつかの簡単な手順を実行するだけで済みます

Hibernate はポリモーフィック マッピングをどのように実装しますか? Hibernate はポリモーフィック マッピングをどのように実装しますか? Apr 17, 2024 pm 12:09 PM

Hibernate ポリモーフィック マッピングは、継承されたクラスをデータベースにマップでき、次のマッピング タイプを提供します。 join-subclass: 親クラスのすべての列を含む、サブクラス用の別個のテーブルを作成します。 table-per-class: サブクラス固有の列のみを含む、サブクラス用の別個のテーブルを作成します。 Union-subclass: join-subclass と似ていますが、親クラス テーブルがすべてのサブクラス列を結合します。

PHP でデータベース接続エラーを処理する方法 PHP でデータベース接続エラーを処理する方法 Jun 05, 2024 pm 02:16 PM

PHP でデータベース接続エラーを処理するには、次の手順を使用できます。 mysqli_connect_errno() を使用してエラー コードを取得します。 mysqli_connect_error() を使用してエラー メッセージを取得します。これらのエラー メッセージをキャプチャしてログに記録することで、データベース接続の問題を簡単に特定して解決でき、アプリケーションをスムーズに実行できるようになります。

PHP で MySQLi を使用してデータベース接続を確立するための詳細なチュートリアル PHP で MySQLi を使用してデータベース接続を確立するための詳細なチュートリアル Jun 04, 2024 pm 01:42 PM

MySQLi を使用して PHP でデータベース接続を確立する方法: MySQLi 拡張機能を含める (require_once) 接続関数を作成する (functionconnect_to_db) 接続関数を呼び出す ($conn=connect_to_db()) クエリを実行する ($result=$conn->query()) 閉じる接続 ( $conn->close())

Golangでデータベースコールバック関数を使用するにはどうすればよいですか? Golangでデータベースコールバック関数を使用するにはどうすればよいですか? Jun 03, 2024 pm 02:20 PM

Golang でデータベース コールバック関数を使用すると、次のことを実現できます。 指定されたデータベース操作が完了した後にカスタム コードを実行します。追加のコードを記述せずに、個別の関数を通じてカスタム動作を追加します。コールバック関数は、挿入、更新、削除、クエリ操作に使用できます。コールバック関数を使用するには、sql.Exec、sql.QueryRow、または sql.Query 関数を使用する必要があります。

GolangでJSONデータをデータベースに保存するにはどうすればよいですか? GolangでJSONデータをデータベースに保存するにはどうすればよいですか? Jun 06, 2024 am 11:24 AM

JSON データは、gjson ライブラリまたは json.Unmarshal 関数を使用して MySQL データベースに保存できます。 gjson ライブラリは、JSON フィールドを解析するための便利なメソッドを提供します。json.Unmarshal 関数には、JSON データをアンマーシャリングするためのターゲット型ポインターが必要です。どちらの方法でも、SQL ステートメントを準備し、データをデータベースに永続化するために挿入操作を実行する必要があります。

Golangを使用してリモートデータベースに接続するにはどうすればよいですか? Golangを使用してリモートデータベースに接続するにはどうすればよいですか? Jun 01, 2024 pm 08:31 PM

Go 標準ライブラリのデータベース/SQL パッケージを通じて、MySQL、PostgreSQL、SQLite などのリモート データベースに接続できます。データベース接続情報を含む接続文字列を作成します。 sql.Open() 関数を使用してデータベース接続を開きます。 SQL クエリや挿入操作などのデータベース操作を実行します。 defer を使用してデータベース接続を閉じ、リソースを解放します。

さまざまなデータベースへの PHP 接続: MySQL、PostgreSQL、Oracle など さまざまなデータベースへの PHP 接続: MySQL、PostgreSQL、Oracle など Jun 01, 2024 pm 03:02 PM

PHP データベース接続ガイド: MySQL: MySQLi 拡張機能をインストールし、接続 (サーバー名、ユーザー名、パスワード、データベース名) を作成します。 PostgreSQL: PgSQL 拡張機能をインストールし、接続 (ホスト、データベース名、ユーザー、パスワード) を作成します。 Oracle: OracleOCI8 拡張機能をインストールし、接続 (サーバー名、ユーザー名、パスワード) を作成します。実際のケース: MySQL データ、PostgreSQL クエリ、OracleOCI8 更新レコードを取得します。

See all articles