昨天碰到一个人提问如何一次性的删除要素类中的所有要素,帮他找了找,发现具体的方法是没有的(如 deleteall removeall 之类的直接方法),但是可以从其它的思路中转换一下思路。所以在ITable接口中,发现了一个方法:
ITable:DeleteSearchedRows
其实这个方法是删除那些通过选择搜索到的表中记录的,变通的思想就是要删除所有的要素,那么就搜索到所有的记录要素,调用这个方法就可以直接删除了。
通过实验----可以,没有问题
代码如下(贼简单 嘿嘿):
Dim pMXD As IMxDocument
Set pMXD = ThisDocument
Dim pLyr As IFeatureLayer
Set pLyr = pMXD.FocusMap.Layer(0)
Dim pTable As ITable
Set pTable = pLyr.FeatureClass ''QI
Dim pQueryF As IQueryFilter ''定义查询条件对象
Set pQueryF = New QueryFilter ''不设置查询过滤条件,表示将全部查询
pTable.DeleteSearchedRows pQueryF ''执行,就可以删除记录了
1:QI:IfeatureClass to IDataset,IDataset.Delete(),应该想到,删除添加是很基本的功能,肯定在顶端的接口里面。呵呵。
|