批量删除要素的方法【转载】
【转载】批量删除要素的方法
http://www.gissky.net/blog/user1/yumao/16139.html
昨天碰到一个人提问如何一次性的删除要素类中的所有要素,帮他找了找,发现具体的方法是没有的(如 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 \'\'执行,就可以删除记录了
http://www.gissky.net/blog/user1/yumao/16139.html
昨天碰到一个人提问如何一次性的删除要素类中的所有要素,帮他找了找,发现具体的方法是没有的(如 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 \'\'执行,就可以删除记录了