SuperMap.REST.LinkItem

关联信息类。 该类用于矢量数据集与外部表的关联。 外部表是另一个数据集(其中纯属性数据集中没有空间几何信息)中的 DBMS 表, 矢量数据集与外部表可以属于不同的数据源,但数据源类型目前只支持SQL Server和Oracle类型。 使用LinkItem时, 空间数据和属性数据必须满足关联条件,即主空间数据集与外部属性表之间存在关联字段。 LinkItem 只支持左连接,UDB、PostgreSQL 和 DB2 数据源不支持 LinkItem; 另外,用于建立关联关系的两个表可以不在同一个数据源下。

(注意: 1.  使用 LinkItem 的约束条件为:空间数据和属性数据必须有关联条件,即主空间数据集与外部属性表之间存在关联字段; 2.  使用外关联表制作专题图时,所关联的字段必须设置表名,例如,如果所关联的字段为BaseMap_R数据集的SmID,就要写成BaseMap_R.SMID。)

Summary
SuperMap.REST.LinkItem 关联信息类。 该类用于矢量数据集与外部表的关联。 外部表是另一个数据集(其中纯属性数据集中没有空间几何信息)中的 DBMS 表, 矢量数据集与外部表可以属于不同的数据源,但数据源类型目前只支持SQL Server和Oracle类型。 使用LinkItem时, 空间数据和属性数据必须满足关联条件,即主空间数据集与外部属性表之间存在关联字段。 LinkItem 只支持左连接,UDB、PostgreSQL 和 DB2 数据源不支持 LinkItem; 另外,用于建立关联关系的两个表可以不在同一个数据源下。
Properties
datasourceConnectionInfo {SuperMap.REST.DatasourceConnectionInfo} 关联的外部数据源信息 。
foreignKeys {Array(String)} 主空间数据集的外键。
foreignTable {String} 关联的外部属性表的名称,目前仅支持 Supermap 管理的表,即另一个矢量数据集所对应的 DBMS 表。
linkFields {Array(String)} 欲保留的外部属性表的字段。如果不设置字段或者设置的字段在外部属性表中不存在的话则不返 回任何外部属性表的属性信息。如果欲保留的外部表字段与主表字段存在同名,则还需要指定一个不存在字段名作为外部表的字段别名。
linkFilter {String} 与外部属性表的连接条件。
name {String} 此关联信息对象的名称。
primaryKeys {Array(String)} 需要关联的外部属性表的主键。
Constructor
SuperMap.REST.LinkItem 关联信息类构造函数。
Functions
destroy 释放资源,将引用资源的属性置空。

Properties

datasourceConnectionInfo

{SuperMap.REST.DatasourceConnectionInfo} 关联的外部数据源信息 。

foreignKeys

{Array(String)} 主空间数据集的外键。

foreignTable

{String} 关联的外部属性表的名称,目前仅支持 Supermap 管理的表,即另一个矢量数据集所对应的 DBMS 表。

linkFields

{Array(String)} 欲保留的外部属性表的字段。如果不设置字段或者设置的字段在外部属性表中不存在的话则不返 回任何外部属性表的属性信息。如果欲保留的外部表字段与主表字段存在同名,则还需要指定一个不存在字段名作为外部表的字段别名。

linkFilter

{String} 与外部属性表的连接条件。

name

{String} 此关联信息对象的名称。

primaryKeys

{Array(String)} 需要关联的外部属性表的主键。

Constructor

SuperMap.REST.LinkItem

关联信息类构造函数。

设置将TableB关联到TableA的关联信息,即建立LinkItem类并设置其属性, TableA与TableB是通过主表(TableA)的外键(LinkItem类的 ForeignKey 属性) 和副表(TableB)的主键(LinkItem类的 PrimaryKey 属性)实现关联的, 当执行TableA的查询操作时,系统将根据关联信息中的过滤条件及查询条件,分别查询TableA 与TableB中满足条件的内容,TableA的查询结果与TableB的查询结果分别作为 独立的两个结果表保存在内存中,当需要获取结果时,SuperMap将对两个结果进行拼接并返回, 因此,进行关联查询时,查询参数中的返回字段一定要有关联条件中的外键, 否则无法根据外键的值获取副表中的关联字段值,副表中的字段值将返回 null。 在应用层看来,连接和关联操作很相似。

下面以SQL查询说明linkitem的使用方法:

function queryBySQL() {
    // 设置关联的外部数据库信息,alias表示数据库别名
    var dc = new SuperMap.REST.DatasourceConnectionInfo({
        dataBase: "RelQuery",
        server: "192.168.168.39",
        user: "sa",
        password: "map",
        driver: "SQL Server",
        connect: true,
        OpenLinkTable: false,
        alias: "RelQuery",
        engineType: SuperMap.REST.EngineType.SQLPLUS,
        readOnly: false,
        exclusive: false
    });
   // 设置关联信息
    var linkItem = new SuperMap.REST.LinkItem({
        datasourceConnectionInfo: dc,
        foreignKeys: ["name"],
        foreignTable: "Pop_2011",
        linkFields: ["SmID as Pid","pop"],
        name: "link",
        primatryKeys: ["name"],
    });
    // 设置查询参数,在查询参数中添加linkItem关联条件信息
    var queryParam, queryBySQLParams, queryBySQLService;
    queryParam = new SuperMap.REST.FilterParameter({
        name: "Province@RelQuery",
        fields: ["SmID","name"],
        attributeFilter: "SmID<7",
        linkItems: [linkItem]
     }),
    queryBySQLParams = new SuperMap.REST.QueryBySQLParameters({
         queryParams: [queryParam]
            }),
    queryBySQLService = new SuperMap.REST.QueryBySQLService(url, {
        eventListeners: {
            "processCompleted": processCompleted,
            "processFailed": processFailed
            }
    });
    queryBySQLService.processAsync(queryBySQLParams);
}
function processCompleted(queryEventArgs) {//todo}
function processFailed(e) {//todo}

Parameters

options {Object} 参数。

Allowed options properties

datasourceConnectionInfo {SuperMap.REST.DatasourceConnectionInfo} 关联的外部数据源信息。
foreignKeys {Array(String)} 主空间数据集的外键。
foreignTable {String} 关联的外部属性表的名称。
linkFields {Array(String)} 欲保留的外部属性表的字段。
linkFilter {String} 与外部属性表的连接条件。
name {String} 此关联信息对象的名称。
primaryKeys {Array(String)} 需要关联的外部属性表的主键。

Functions

destroy

destroy: function()

释放资源,将引用资源的属性置空。

数据源连接信息类。 该类包括了进行数据源连接的所有信息,如所要连接的服务器名称、数据库名称、用户名以及密码等。 当保存为工作空间时, 工作空间中的数据源的连接信息都将存储到工作空间文件中。对于不同类型的 数据源,其连接信息有所区别。所以在使 用该类所包含的成员时,请注意该成员所适用的数据源类型。 对于从数据源对象中返回的数据连接信息对象,只有 connect 方法可以被修改,其 他内容是不可以被修改的。 对于用户创建的数据源连接信息对象,其内容都可以修改。
destroy: function()
释放资源,将引用资源的属性置空。
Close