ODBC关系数据库

司机简称

ODBC

生成依赖项

ODBC库

OGR可选地支持通过ODBC访问的空间和非空间表。ODBC是一个通用的访问层,用于访问许多数据库系统,以及可以表示为数据库(表集合)的数据。ODBC支持可能在Unix和Windows平台上可用,但仅通过特殊配置选项包含在Unix生成中。

使用窗体的数据源名称访问ODBC数据源 ODBC:userid/password@dsn,schema.tablename(geometrycolname),...:srs_tablename(sridcolumn,srtextcolumn) . 如果删除了可选项,也可以接受以下内容:

  • ODBC:userid/password@dsn

  • ODBC:userid@dsn,table_list

  • ODBC:dsn,table_list

  • ODBC:dsn

  • ODBC:dsn,table_list:srs_tablename

这个 dsn 是ODBC数据源名称。通常,ODBC数据源是使用ODBC管理工具设置的,并分配了一个DSN。DSN是用来访问数据源的。

默认情况下,ODBC搜索“几何图形列”表。如果找到,它将用于标识OGR应视为层的空间表集。如果找不到,则数据源中的所有表都将作为非空间层返回。但是,如果提供了一个表列表(逗号分隔的表名列表),那么只有那些表将被表示为层(非空间)。获取复杂数据库中所有表的完整定义可能非常耗时,因此限制访问的表集的能力主要是性能问题。

如果找到GEOMETRY_COLUMNS表,它将用于选择列作为几何图形源。如果表以数据源名称传递,则与表关联的几何列可以包含在表名称后面的圆括号中。当前的硬编码假设是,如果该字段是二进制的,则几何体是众所周知的二进制(WKB)格式,否则为众所周知的文本(WKT)。GEOMETRY_COLUMNS表至少应具有列F_table_NAME、F_GEOMETRY_COLUMN和GEOMETRY_TYPE。

如果表有一个geometry列,并且有一个名为XMIN、YMIN、XMAX和YMAX的字段,那么使用空间过滤器直接查询表会加速空间查询。XMIN、YMIN、XMAX和YMAX字段应表示表格坐标系中行中几何图形的范围。

默认情况下,SQL语句直接传递到基础数据库引擎。也可以请求驱动程序使用 OGR SQL 发动机,通过 “OGRSQL” ExecuteSQL()方法的字符串,作为SQL方言的名称。

数据集打开选项

  • LIST_ALL_TABLES=YES/NO: This may be "YES" to force all tables, including system and internal tables (such as the MSys* tables) to be listed (since GDAL 3.4). Applies to Microsoft Access Databases only. Note that the Windows Microsoft Access ODBC Driver always strips out MSys tables, and accordingly these will not be returned on Windows platforms even if LIST_ALL_TABLES is set to YES.

驱动程序功能

Supports Georeferencing

This driver supports georeferencing

Access数据库(.MDB)支持

在Windows上提供“Microsoft Access驱动程序( * .mdb)“ODBC驱动程序已安装,非空间MS Access数据库(不是个人地理数据库或Geomedia数据库)可以直接通过其文件名打开。

在Linux上,通过安装unixODBC和mdbtools,可以使用ODBC驱动程序打开非空间MS-Access数据库。看到了吗 MDB 有关如何启用此功能的说明。

The driver supports either .mdb or .accdb extensions for Microsoft Access databases. Additionally, it also supports opening files with the ESRI .style database extension (which is just an alias for the .mdb file extension).

创建问题

目前ODBC OGR驱动程序是只读的,因此OGR应用程序通常不能创建新的特性、表和数据源。这一限制今后可能会取消。

也见