如何删除记录

本例要实现的是如何在FeatureClass中删除一条记录(Feature)。

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

posted on 2006-09-07 13:06  greatbird  阅读(521)  评论(0)    收藏  举报

导航