记录集类。通过此类,可以实现对矢量数据集中的数据进行操作。
程序集: SuperMap.Data (in SuperMap.Data)
版本: dll
语法
C# |
---|
public class Recordset : IDisposable |
备注
数据源分为文件型数据源和数据库型数据源,数据库型数据源中的数据的空间几何信息和属性信息是一体化存储的,一个矢量数据集对应一个关系型数据库(DBMS)中的表(Table),其几何形状以及属性信息都一体化存储其中,表中的几何字段存储要素的空间几何信息。
对于矢量数据集中的纯属性数据集,其中没有几何字段,记录集为DBMS表的一个子集;而在文件型数据中空间几何信息和属性信息是分别存储的,记录集的应用可能比较让人费解,实际上,操作时是屏蔽掉文件型和数据库型数据的区别,将数据都看成是一个空间信息和属性信息一体化存储的表,而记录集是从其中取出的用来操作的一个子集。记录集中的一条记录,即一行,对应着一个要素,包含该要素的空间几何信息和属性信息。记录集中的一列对应一个字段的信息。
记录集可通过两种方式获得:在地图控件中选中若干个几何对象形成一个选择集,然后把选择集转换为记录集;或者从矢量数据集中获得一个记录集,有两种方法,用户可以通过DatasetVector.GetRecordset方法直接从矢量数据集中获取记录集,也可以通过查询语句获取记录集,所不同的是前者得到的记录集包含该类型集合的全部空间几何信息和属性信息,而后者得到的是经过查询语句条件过滤的记录集。
注意: 用户得到Recordset对象后,当执行完系列操作后,需要对该对象进行释放。
示例
以下代码示范了如何对记录集进行操作,如添加、移动记录。
假设打开一个工作空间workspace,假设工作空间中包含名为 World 的矢量数据集 dataset_world 和名为 Example 的矢量数据集 dataset。
CopyC#
public void RecordsetSample(Workspace workspace) { // 获取两个数据集 DatasetVector dataset_world = workspace.Datasources[0].Datasets["World"] as DatasetVector; DatasetVector dataset = workspace.Datasources[0].Datasets["Ocean"] as DatasetVector; // 得到“Example”对应的所有记录集以及“World”中 SmID=1 的记录 Recordset recordset = dataset.GetRecordset(false, CursorType.Dynamic); Recordset recordset_world = dataset_world.Query("SmID=1", CursorType.Static); // 将记录位置移到第一位 recordset.MoveFirst(); // 将“World”中 SmID=1 的记录添加到 recordset 中并提交 Geometry geometry = recordset_world.GetGeometry(); recordset.AddNew(geometry); recordset.Update(); // 关闭记录集,释放几何对象、记录集 recordset.Close(); geometry.Dispose(); recordset.Dispose(); recordset_world.Dispose(); }