SQLite 和 ArcGIS

可从 ArcGIS 连接到 SQLite 数据库来创建地图并对数据执行空间分析。

从 ArcGIS 客户端直接连接到 SQLite 数据库文件。有关说明,请参阅连接到 SQLite

您必须在 SQLite 数据库中安装 Esri ST_Geometry 类型或 SpatiaLite 以在其中存储空间数据。您必须使用其中一个;无法在同一 SQLite 数据库中同时使用两者。可使用 CreateSQLiteDatabase ArcPy 函数来创建使用其中任一空间数据类型的 SQLite 数据库。

ArcGIS 中的 SQLite 数据

访问数据

通过控制对存储 SQLite 数据库的文件夹的权限来控制对 SQLite 数据库的访问。与其他数据库不同的是,您没有创建经过数据库验证的用户,并且没有将特定数据集的权限授予其他用户。

SQLite 可由多个用户进行读取,但在另一用户进行更新时,您不应对数据库进行任何更新。例如,当另一用户将数据追加到现有表或在数据库中创建表时,不要将数据追加到现有表或在数据库中创建表。

数据类型

SQLite 与其他数据库的不同之处还在于,不会为字段分配特定的数据类型,而且不必严格遵守数据类型定义。但 SQLite 会使用可在其中存储不同数据类型值的存储类。

但是,ArcGIS 的每个字段只能使用一种数据类型,并且要严格规定数据类型。查看 ArcGIS 中的 SQLite 数据时您应该注意数据类型强制遵守方面的不同。

以下示例使用整数和文本字段创建表:

CREATE TABLE mytable (
  id INTEGER PRIMARY KEY NOT NULL, 
  item TEXT, 
  weight INTEGER,
  store TEXT;

即使权重字段被定义为整数,SQLite 也允许您存储带有小数的数字。甚至允许您在其中存储文本。例如,它将允许您插入以下记录:

INSERT INTO mytable (id, item, weight, store) VALUES(
 1,
 magnetic dual elliptical trainer with seat,
 75,
 CardioPlus Equipment
);

INSERT INTO mytable (id, item, weight, store) VALUES(
 2,
 superfit treadmill4000,
 81.2,
 Sports Pit
);

INSERT INTO mytable (id, item, weight, store) VALUES(
 3,
 serenity yoga mat,
 .4588,
 Aerobic Angels Sporting Goods
);

INSERT INTO mytable (id, item, weight, store) VALUES(
 4,
 swim fins,
 "two",
 The Plunge
);

但由于权重字段被定义为整数,因此这些值将在 ArcGIS 中以如下方式显示:

id

项目

权重

存储

1

magnetic dual elliptical trainer with seat

75

CardioPlus Equipment

2

superfit treadmill4000

81

Sports Pit

3

serenity yoga mat

0

Aerobic Angels Sporting Goods

4

swim fins

0

The Plunge

有关哪些 SQLite 数据类型映射哪些 ArcGIS 数据类型的列表,请参阅 ArcGIS 支持的 DBMS 数据类型

相关主题

5/12/2014