读者指令
所列后缀的前缀为当前< ReaderKeyword >在映射文件中。默认情况下,< ReaderKeyword >为Microsoft SQL Server Spatial阅读器MSSQL_空间.
服务器
必需的/可选
要求
Microsoft SQL Server的主机名。
MSSQL_SPATIAL_SERVER军情六处
工作台参数:服务器
对于SQL Azure,当处于批量插入模式(仅写入程序的默认模式)时,需要特殊语法。有关更多详细信息,请参阅批量插入部分。
USE_SSPI
必需/可选:可选择的
它指定是否应该使用Windows身份验证对数据库服务器进行身份验证。这个指令应该设置为yes或no。默认为no。
如果USE_SSPI被设置为是的,然后使用Windows身份验证,并且用户名和密码指令将被忽略。
MSSQL_ADO_USE_SSPI是的
工作台参数:使用Windows身份验证
加密\u连接
必需的/可选
可选择的
映射文件的语法
MSSQL_ADO_ENCRYPT_CONNECTION是的
工作台参数
加密连接
密码
必需/可选:可选择的
访问数据库的用户密码。如果正在使用Windows身份验证,则忽略此选项。
MSSQL_空间_密码
工作台参数:密码
COMMAND_TIMEOUT
对数据库的查询超时,以秒为单位。如果设置为0,则没有超时。默认为30。
必需的/可选
可选择的
值
0 =无超时
默认值:30
映射文件的语法
MSSQL_SPATIAL_COMMAND_TIMEOUT 15
工作台参数
命令超时
数据集
必需/可选:要求
这是数据库名称。
例子:
MSSQL_SPATIAL_DATASET citySource
工作台参数:源Microsoft SQL Server空间名称
WHERE_子句
必需的/可选
可选择的
这个可选规范用于限制读取器从每个表中读取的行。如果给定的表没有mssql_where_clause或mssql_sql_statement在其DEF行,全球< ReaderKeyword > _WHERE_CLAUSE值(如果存在)将作为哪里用于生成结果的查询的说明符。如果一个表的DEF行确实包含它自己的mssql_where_clause或mssql_sql_statement,它将覆盖全局哪里条款
这个子句的语法是:
MSSQL_空间_WHERE_子句
请注意<whereClause>不包括" WHERE "这个词
下面的例子只选择长度大于2000的特性:
MSSQL_空间_其中_子句长度>2000
工作台参数
Where子句
身份证
必需/可选:可选择的
这个可选规范用于限制将要读取的可用的和已定义的数据库表。如果没有身份证指定,则不读取任何表。的语法身份证关键字:
MSSQL_SPATIAL_IDs\ …\ < featuretypeen >
中使用的特性类型必须匹配DEF行。
下面的示例只选择历史翻译过程中输入的表格:
MSSQL_空间_ID历史记录
DEF
必需/可选:可选择的
该定义的语法为:
MSSQL_SPATIAL_DEF\ [(mssql_geom_column ) \ |(mssql_geog_column )] \ [mssql_where_clause ] \ [ ] +
或
MSSQL_SPATIAL_DEF\ [(mssql_geom_column ) \ |(mssql_geog_column )] \ [mssql_sql_statement ] \ [ ] +
这个<对应表名>必须与数据库中现有Microsoft SQL Server表的名称匹配。这将用作从表中读取的所有特征的特征类型。此规则的例外情况是使用mssql_sql_statement关键词。在这种情况下,DEF名称可以是任何有效的字母标识符;它不必是现有的表名,而是自定义SQL查询的标识符。SQL查询返回的所有功能的功能类型都被赋予了查询名称。
这个<字段类型>必须给出每个字段的值,但不根据字段的数据库定义进行验证。实际上,它被忽略了。
该定义允许为每个表指定单独的搜索参数。如果给定了每个表的任何配置参数,它们将覆盖该表中由reader关键字(如WHERE_子句. 如果未指定这些参数中的任何一个,将使用全局值。
定义线配置参数总结如下表:
参数 |
内容 |
mssql_geom_column |
这指定了FME将从中读取几何图形的列。如果所选表只有一个空间列,并且没有使用mssql_geom_column或mssql_geog_column关键字,FME将自动确定空间列。在每个DEF行上只能指定mssql_geom_column和mssql_geog_column中的一个。 与一起使用时,MSSQL Spatial Reader支持每个表的多个空间列处理多个空间列指令。 |
mssql_geog_column |
它指定FME将从哪个列读取地理信息。如果所选表只有一个空间列,并且没有使用mssql_geom_column或mssql_geog_column关键字,FME将自动确定空间列。在每个DEF行上只能指定mssql_geom_column和mssql_geog_column中的一个。 与一起使用时,MSSQL Spatial Reader支持每个表的多个空间列处理多个空间列指令。 |
mssql_where_clause |
它指定应用于层特性属性的SQL WHERE子句,以限制返回的特性集。如果没有指定,则返回所有的行。如果存在mssql_sql_statement,该关键字将被忽略。 |
mssql_sql_statement |
这将指定一个SQL SELECT查询作为结果的源。如果指定了这个值,Microsoft SQL Server Spatial读取器将执行查询,并使用结果行作为特性,而不是从表 |
如果没有
Microsoft SQL Server Spatial reader允许用户使用mssql_sql_statement参数指定任意SQL选择关于DEF线。如果指定了这一点,FME将执行查询,并使用查询返回的每一行数据来定义一个特性。中命名的特性类型将给出每个特性类型DEF行,并将包含选择.在这种情况下,所有DEF关于哪里子句或空间查询被忽略,因为可以将此信息直接嵌入到< sqlQuery >.
在下面的示例中,所有ID小于5的记录将从供应商表中读取。如果供应商表包含一个几何列,它将被自动检测并读取。
MSSQL_SPATIAL_DEF supplier \ mssql_where_clause "id < 5" \ id integer \ NAME char(100) \ CITY char(50)
在本例中,连接的结果员工和城市返回表格。两个表中的所有属性将显示在每个返回的特性上。功能类型将设置为复杂的.将从CITY表中的GEOM列读取几何数据。
MSSQL_SPATIAL_DEF complex\MSSQL_geom_column geom\MSSQL_sql_语句\“从雇员、城市中选择*,其中EMPLOYEE.CITY=CITY.NAME”
READ_CACHE_SIZE
必需/可选:可选择的
此关键字控制读取器如何从数据库检索行。这必须是大于0的数值。
这个READ_CACHE_SIZE用于确定从数据源一次检索到本地内存中的行数。例如,如果READ_CACHE_SIZE被设置为10,打开读卡器后,读卡器将向本地内存中读取10行。当FME处理特征时,读取器从本地内存缓冲区返回数据。一旦您移动到本地内存中可用的最后一行,读取器将从数据源中检索接下来的10行。
此关键字会影响读卡器的性能,如果设置不正确,将导致性能显著降低。此关键字的最佳值主要取决于单个记录的特征以及数据库和客户机之间的传输。它受要检索的行数的影响较小。
默认情况下,READ_CACHE_SIZE设置为10。这个值已被确定为平均数据集的最优值。
工作台参数:一次获取的记录数
ASSUME_ONE_SRID_PER_COL
必需/可选:可选择的
SQL Server不约束列中的所有几何对象具有相同的空间引用ID (SRID)。但是,通常的做法是在给定的列中使用单个SRID。如果该指令设置为“NO”,FME在查询数据库时不会假设每个几何列使用单个SRID。
参数 |
内容 |
<假设每个列有一个srid> |
“是”或“否” 违约:对 |
例子:
MSSQL_SPATIAL_ASSUME_ONE_SRID_PER_COL是的
工作台参数:几何列有一个SRID
持久连接
必需的/可选
可选择的
如果这个指令设置为YES,数据库连接将保持打开状态,并在可能的情况下重用,直到FME关闭。
PERSISTENT_CONNECTION指令的语法为:
工作台参数
使连接持续
使用\u使\u有效
默认情况下,USE_MAKE_VALID设置为NO。
必需的/可选
可选择的
工作台参数
使用MakeValid搜索信封
处理多个空间列
如果这个指令设置为YES,特征几何将被读入聚合。在聚合上设置一个指令,指示聚合的每个部分独立于其他部分,并具有自己的几何形状。聚合的几何部分根据正在读取的表中各自的列来命名并包含几何。
当使用该特性时,既不能指定geometry/geography列,也不能指定特性类型SELECT语句。
必需的/可选
可选择的
映射文件的语法
< ReaderKeyword > _HANDLE_MULTIPLE_SPATIAL_COLUMNS是的
工作台参数
处理多个空间列
SEARCH_ENVELOPE
使用最小和最大的x和y参数,定义一个边界框,用于过滤输入特征。只有与边界框交互的特性才会返回。
如果搜索信封的所有四个坐标都指定为0,则搜索信封将被禁用。
映射文件的语法
注:如果搜索封套的所有四个坐标都指定为零,则搜索封套将被禁用。
必需的/可选
可选择的
工作台参数
最小X,最小Y,最大X,最大Y
SEARCH_ENVELOPE_COORDINATE_SYSTEM
这个指令指定搜索信封的坐标系统,如果它与数据的坐标系统不同。
这个COORDINATE_SYSTEM
指令指定与要读取的数据关联的坐标系,如果SEARCH_ENVELOPE_COORDINATE_SYSTEM
指令已设置。
如果设置了此指令,则搜索封套的最小和最大点将从SEARCH_ENVELOPE_COORDINATE_SYSTEM
读者COORDINATE_SYSTEM
在使用信封之前。
必需的/可选
可选择的
映射文件的语法
工作台参数
搜索包络坐标系
夹在信封上
该指令指定FME是否应将特征剪裁到SEARCH_ENVELOPE
指令。
值
YES | NO(默认)
映射文件的语法
工作台参数
夹信封
EXPOSED_ATTRS
该指令允许将格式属性的选择显式地添加到阅读器特性类型中。
这类似于在阅读器特性类型生成后,在其上公开格式属性;然而,它甚至更加强大,因为它使除Workbench之外的模式驱动的应用程序能够访问和利用这些属性,就像它们显式地作为用户属性出现在模式上一样。
选择属性列表的结果是一个以逗号分隔的属性名称和类型列表,这些属性名称和类型将被添加到模式特性中。目前,对于阅读器的给定实例,所有阅读器特性类型都将接收相同的附加模式属性集。
必需的/可选
可选择的
映射文件的语法
不适用。
虽然FME对象应用程序可以调用此指令,但未记录所需的格式。
此指令仅用于GUI应用程序(例如,工作台)。
工作台参数
要公开的其他属性