读者指令

下面列出的指令是由SpatialWare阅读器处理的。列出的后缀以当前前缀< ReaderKeyword >在映射文件中。默认情况下,< ReaderKeyword >对于SpatialWare的读者来说SPATIALWARE

数据集

要求/可选:要求

此子句标识连接到SpatialWare数据库的ODBC数据源,从该数据库检索特性。

参数

内容

<数据集>

从其中检索特性的ODBC数据源的名称。在SpatialWare中,这个数据集被称为数据库数据源.无论SpatialWare的底层RDBMS是什么,这都是必需的。

例子:

SPATIALWARE_DATASET乔治敦

工作台参数:Source MapInfo SpatialWare ODBC数据源

DEF

必需的/可选

可选

此子句标识用于从SpatialWare数据库检索特性的查询。

第一种形式的语法是:

_DEF  \ [spatialware_def_where_clause ]

<表>必须与数据库中的表匹配。这将用作从表中读取的所有特性的特性类型。

如果没有whereClause > <时,将读取表中的所有行并作为单个特性返回。如果一个whereClause > <,则只读取由子句选择的行。的whereClause > <将包含在一个构造的SQL语句中,并不受影响地传递给数据库(因此可以使用任何SpatialWare的SQL/Spatial谓词)。

请注意,whereClause > <不重复这个词在哪里.还要注意,如果你已经有whereClause > <在DEF行指定的SQL语句中spatialware_def_sql_statement那么你就不需要指定spatialware_def_where_clause。这样做将导致一个错误,因为重复的where子句。

表中的所有属性都将出现在每个返回的特性上。

示例1:

下面的示例指示FME从数据库中检索表的特性道路,对于其中的行NUMLANES列的值为2表面列的值为'砾石”。在构建长在哪里条款。

SPATIALWARE_DEF道路\ spatialware_def_where_clause子句numlanes = 2 and surface \
=砾石

注意:转义引号可以放在作为保留字的列名周围。例如,/“从”。

示例2:

在哪里子句说明如何选择包含在预设边界框中的所有道路特征,预设边界框定义为X1 y1 x2 y2).特性类型将被设置为道路

SPATIALWARE_DEF道路\ spatialware_def_where_clause \ ST_Contains(HG_Box(10,20,60,70),sw_geometry)

的第二种形式的语法DEF线:

SPATIALWARE_DEF  \ []

在此表单中,任意填写< sqlStatement >,如“选择语句,将被执行。该语句不受影响地传递给数据库(因此可以使用SpatialWare的任何SQL/Spatial谓词)。语句的结果将作为特性返回给FME,每次返回一行。该表单允许将复杂连接的结果返回给FME。

所有的特征将给出特征类型<表>,尽管它们不一定来自那张表。事实上,通过这种形式<表>不需要在数据库中作为单独的表存在。

查询产生的所有属性都将出现在每个返回的特性上。当执行连接操作时,FME特性将来自不同表的所有属性组合到每个特性中。如果多个表中有同名的列,那么这些列的特性属性将使用表名进行限定,以确保每个属性都是惟一的。

示例3:

< spatialware_def_sql_statement >下面演示了如何在两个不同的表上执行连接,PRIVBLDG.该查询要求所有湖泊和私人建筑的数量,相互之间在150个单元。特性类型将被设置为复杂的

select a.sw_member, b.sw_member \ from lake a, privbldg b \ where st_overlaps(st_buffer(a.))Sw_geometry, 150.0, 10.0), \ b.sw_geometry)

DEF_OVERRIDE

要求/可选:可选

这个子句与DEF子句的形式完全相同。它执行与DEF子句相同的功能。除了在自动生成的映射文件中,使用此子句通常对用户没有直接的价值。

如果映射文件中有具有相同特性类型的DEF行,则此子句将覆盖DEF行并持久化。匹配的DEF行将被忽略。如果映射文件中没有具有相同特性类型的DEF行,该子句将简单地添加另一个查询,从该查询将读取特性。

例子:

SPATIALWARE_DEF_OVERRIDE ROADS \ SELECT owner FROM ROADS WHERE numlanes = 2

id

要求/可选:可选

此子句标识要从中读取信息的表的名称。

参数

内容

<表名>

SpatialWare数据库中表名的列表。

使用这些表名的方式取决于是否存在表名DEF映射文件中的行。任何DEF_OVERRIDE关键词不算DEF在这种情况下。

如果有的话DEF行,则只有其特征类型列在id使用线。所有其他的DEF的行或表名id线将被忽略。

如果没有DEF中列出的所有表名读取所有特性id行。特性的读取与查询完全相同' SELECT * FROM表名> '用于?中的每个表名id列表。

例子:

spatialware_id建筑道路河流森林

SERVER_TYPE

要求/可选:可选

此子句标识SpatialWare服务器正在操作的数据库类型。

参数

内容

<服务器类型>

SpatialWare服务器操作的数据库类型。此值可能包含sqlserver或informix。

例子:

SPATIALWARE_SERVER_TYPE informix

SPATIALWARE_SERVER_TYPE sqlserver

工作台参数:SpatialWare服务器类型

用户标识

要求/可选:可能需要

访问SpatialWare数据库所需的用户名。Sine数据库(比如Informix)可能不需要这样做。

参数

内容

<标识>

用于访问SpatialWare数据集的用户帐户的ID。

例子:

SPATIALWARE_USERID名字

工作台参数:用户ID

密码

要求/可选:可能需要

与指定用户ID关联的密码。Informix等数据库可能不需要它,但SQLServer可能需要它。

参数

内容

<密码>

用于访问SpatialWare的用户帐户的密码。

例子:

SPATIALWARE_Password secretpassword

工作台参数:密码

SEARCH_ENVELOPE

使用最小和最大的x和y参数,定义一个边界框,用于过滤输入特征。只有与边界框交互的特性才会返回。

如果搜索信封的所有四个坐标都指定为0,则搜索信封将被禁用。

映射文件的语法

_SEARCH_ENVELOPE

注意:如果搜索信封的所有四个坐标都指定为零,则搜索信封将被禁用。

必需的/可选

可选

工作台参数

最小X,最小Y,最大X,最大Y

SEARCH_ENVELOPE_COORDINATE_SYSTEM

这个指令指定搜索信封的坐标系统,如果它与数据的坐标系统不同。

COORDINATE_SYSTEM指令,它指定与要读取的数据相关联的坐标系统SEARCH_ENVELOPE_COORDINATE_SYSTEM设置指令。

如果设置了这个指令,搜索信封的最小和最大点将从SEARCH_ENVELOPE_COORDINATE_SYSTEM读者COORDINATE_SYSTEM在申请信封之前。

必需的/可选

可选

映射文件的语法

< ReaderKeyword > _SEARCH_ENVELOPE_COORDINATE_SYSTEM <坐标系统>

工作台参数

搜索包络坐标系

RETRIEVE_ALL_SCHEMAS

此参数仅在生成映射文件、生成工作区或在FME Objects应用程序中检索模式时适用。

当设置为是的,则返回数据库中所有表和特性类的模式。

当设置为没有(或失踪),如果RETRIEVE_ALL_TABLE_NAMES类似地设置为没有(或丢失)时,只返回id参数请求的模式。

必需的/可选

可选

YES | NO(默认)

没有:读取器将返回id中指定的特性类型的模式。如果id中没有指定特性,那么FME将返回所有表的模式特性。

如果未指定该值,则假定为No。

是的:指示读取器返回数据库中所有表的模式。

映射文件的语法

不适用。

FME对象应用程序将包括RETRIEVE_ALL_SCHEMAS在参数数组中后跟“YES”IFMEUniversalReader:: open ()

工作台参数

不适用

RETRIEVE_ALL_TABLE_NAMES

此参数仅适用于生成映射文件、生成工作区或在FME Objects应用程序中检索模式时。

当设置为yes时,以及如果RETRIEVE_ALL_SCHEMAS设置为no(或缺失)时,将返回数据库中所有表和特性类的名称。当设置为no(或missing)时,以及ifRETRIEVE_ALL_SCHEMAS类似地设置为no(或missing),则返回IDs指令请求的模式。

注意:如果RETRIEVE_ALL_SCHEMAS也设置为Yes, thenRETRIEVE_ALL_SCHEMAS优先。

必需的/可选

可选

YES | NO(默认)

映射文件的语法

不适用。

FME对象应用程序将包括RETRIEVE_ALL_TABLE_NAMES在参数数组中后跟“YES”IFMEUniversalReader:: open ()

工作台参数

不适用(当您浏览表列表时使用)