如何删除记录
l 要点
获得游标IFeatureCursor,然后定义IFeature接口对象,并获得要删除的记录,最后使用IFeature.Delete方法删除记录。
主要用到IFeature接口和IFeatureCursor接口。
l 程序说明
函数OpenFeatureClass获得当前激活的Map中第一层的IFeatureClass接口对象。
函数DeleteFeature删除PLACENAME字段值为”Insert Land”的所有记录。
l 代码
|
Private Sub DeleteFeature(pFeatureClass As IFeatureClass) Dim pFeature As IFeature Dim pFeatureCursor As IFeatureCursor Dim pQueryFilter As IQueryFilter Dim nFeatureNumber As Integer On Error GoTo ErrorHandler: If (pFeatureClass Is Nothing) Then Exit Sub End If Set pQueryFilter = New QueryFilter pQueryFilter.WhereClause = "PLACENAME = 'Insert Land'" Set pFeatureCursor = pFeatureClass.Search(pQueryFilter, False) Set pFeature = pFeatureCursor.NextFeature nFeatureNumber = 0 Do While Not pFeature Is Nothing pFeature.Delete nFeatureNumber = nFeatureNumber + 1 Set pFeature = pFeatureCursor.NextFeature Loop MsgBox ("Delete " & nFeatureNumber & " Features") Exit Sub ErrorHandler: MsgBox Err.Description End Sub Private Function OpenFeatureClass() As IFeatureClass Dim pMxDocument As IMxDocument Dim pMap As IMap Dim pFeatureLayer As IFeatureLayer Dim pFeatureClass As IFeatureClass On Error GoTo ErrorHandler: Set OpenFeatureClass = Nothing Set pMxDocument = ThisDocument Set pMap = pMxDocument.FocusMap If (pMap.LayerCount = 0) Then MsgBox ("缺少数据") Exit Function End If Set pFeatureLayer = pMap.Layer(0) Set pFeatureClass = pFeatureLayer.FeatureClass Set OpenFeatureClass = pFeatureClass Exit Function ErrorHandler: MsgBox Err.Description End Function Private Sub UIButtonControl1_Click() On Error GoTo ErrorHandler: Dim pFeatureClass As IFeatureClass Set pFeatureClass = OpenFeatureClass() DeleteFeature pFeatureClass Exit Sub ErrorHandler: MsgBox Err.Description End Sub |
浙公网安备 33010602011771号