首页 / 浏览问题 / 组件GIS / 问题详情
桌面插件开发,多数据集查询
32EXP 2020年04月16日
目前可以指定查询一个数据集内数据,如何写入多个数据集同时查询呢?

目前使用的是 DatasetVector dv=workspace.Datasources[0].Datasets["数据集名称"] as DatasetVector;

Recordset rec=dv.Query(para);

1个回答

您好!您可以用关联查询,主要接口为QueryParameter.LinkItems。
3,352EXP 2020年04月16日
但是要查询的两个数据集中没有关联关系,是两个单独的数据集,一个是点、一个是线。没有外键这种情况能用Linkitems呢?
没有关联关系就无法用关联查询,您查询的是两个数据集的空间关系,比如包含,相交这种关系还是什么?麻烦具体说明一下应用场景。
就是同时查询两个空间数据集(点、线)的属性信息,比如两个数据集都有名称字段,想要一次查询出这两个数据集的所有名称属性。
用遍历来获取数据集对应的recordset的信息,Recordset.GetFieldValue得到字段值。

如何利用遍历获取数据集,现在数据集只能一次获取一个,比如

dataset=workspace.Datasources[0].Datasets["World"] 

,那怎么能一次获取多个数据集呢?

主要是如何创建数据集集合
数据源里可以存很多数据集,您的意思是想把点和线存到一个数据集里吗?就相当于简单数据集转CAD数据集?如果是这样所有的对象存到CAD数据集里是可以查询的。您遍历数据集里每一个记录集,然后将他们逐条添加到CAD数据集里。dataset_world.GetRecordset获取记录集,然后遍历用for循环,Recordset.AddNew添加记录集到数据集中
...