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 数据类型。