查询参数类。用于描述一个条件查询的限制条件,如所包含的SQL语句,游标方式,空间数据的位置关系条件设定等。

命名空间:  SuperMap.Data
程序集:  SuperMap.Data (in SuperMap.Data)
版本: dll

语法

C#
public class QueryParameter : IDisposable

备注

条件查询,是查询满足一定条件的所有要素的记录,其查询得到的结果是记录集。

查询参数类是用来设置条件查询的查询条件从而得到记录集。条件查询包括两种最主要的查询方式,一种为SQL查询,又称属性查询,即通过构建包含属性字段、运算符号和数值的SQL条件语句来选择记录,从而得到记录集;另一种为空间查询,即根据要素间地理或空间的关系来查询记录来得到记录集。

该类中AttributeFilterOrderBy以及GroupBy是用来获取和设置属性查询的相关信息的;而SpatialQueryObjectSpatialQueryMode属性用来获取和设置空间查询的相关信息。另外,通过JoinItemsLinkItems属性可以设置和获取与外部表的连接或关联,从而对外部表进行查询。

如果进行关联查询,必须将该类对象的游标设置为静态游标,具体使用方法请参见LinkItems属性的示例。

示例

以下代码示范如何进行查询操作,并把查询结果追加到新建的数据集中。

假设打开一个工作空间workspace,工作空间中存在一个数据源。

CopyC#
public void QueryParameterSample(Workspace workspace)
{
    // 获取数据源中名为 World 的矢量数据集
    DatasetVector dataset_world = workspace.Datasources[0].Datasets["World"] as DatasetVector;

    // 获得空间查询中的搜索对象
    Recordset srcRecordset = dataset_world.Query("SmID=100",CursorType.Static);

    // 设置查询参数
    QueryParameter parameter = new QueryParameter();
    parameter.AttributeFilter = "SmID < 100";
    parameter.CursorType = CursorType.Static;
    parameter.SpatialQueryMode = SpatialQueryMode.Disjoint;
    parameter.ResultFields = new String[] { "SmID", "Color_Map", "Pop_1994" };
    parameter.SpatialQueryObject = srcRecordset;

    // 进行查询
    Recordset recordset = dataset_world.Query(parameter);

    // 以 dataset_world 为模板创建数据集
    DatasetVector dataset_result = (DatasetVector) workspace.Datasources[0].Datasets.CreateFromTemplate(workspace.Datasources[0].Datasets.GetAvailableDatasetName("Results"), dataset_world);

    // 将空间查询结果追加到新建的数据集中
    dataset_result.Append(recordset);

    // 依次关闭所有对象
    srcRecordset.Dispose();
    recordset.Dispose();
}

继承层次

System..::.Object
  SuperMap.Data..::.QueryParameter

版本信息

SuperMap iObjects .NET


请参见