查询参数类。用于描述一个条件查询的限制条件,如所包含的SQL语句,游标方式,空间数据的位置关系条件设定等。
命名空间:
SuperMap.Data程序集: SuperMap.Data (in SuperMap.Data)
版本: dll
语法
C# |
---|
public class QueryParameter : IDisposable |
备注
条件查询,是查询满足一定条件的所有要素的记录,其查询得到的结果是记录集。
查询参数类是用来设置条件查询的查询条件从而得到记录集。条件查询包括两种最主要的查询方式,一种为SQL查询,又称属性查询,即通过构建包含属性字段、运算符号和数值的SQL条件语句来选择记录,从而得到记录集;另一种为空间查询,即根据要素间地理或空间的关系来查询记录来得到记录集。
该类中AttributeFilter,OrderBy以及GroupBy是用来获取和设置属性查询的相关信息的;而SpatialQueryObject及SpatialQueryMode属性用来获取和设置空间查询的相关信息。另外,通过JoinItems和LinkItems属性可以设置和获取与外部表的连接或关联,从而对外部表进行查询。
如果进行关联查询,必须将该类对象的游标设置为静态游标,具体使用方法请参见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.Data..::.QueryParameter