|
阅读:1419回复:2
在AO中如何删除一个SDE表?
<P>在AO中如何删除一个SDE表?</P>
|
|
|
1楼#
发布于:2004-07-05 17:04
<P>随便发个函数,不一定有帮助</P><P>Private Sub DeleteHisLibVersions(ByVal strFeatureClassName As String)
Dim lCount As Long Dim sNeedDeleteTime Dim pQueryFilter As esriCore.IQueryFilter Dim pFeatureCursor As esriCore.IFeatureCursor Dim pFeature As esriCore.iFeature Dim pFeatureClass As esriCore.IFeatureClass Dim pFeatureWorkSpace As esriCore.IFeatureWorkspace On Error GoTo ErrorHandler Set pFeatureWorkSpace = m_pSdeWorkspace Set pFeatureClass = pFeatureWorkSpace.OpenFeatureClass(strFeatureClassName) Set pQueryFilter = New esriCore.QueryFilter</P><P> ProgressBar1.value = 1 ProgressBar1.min = 1 ProgressBar1.Max = pFeatureClass.FeatureCount(pQueryFilter)</P><P> Set pFeatureCursor = pFeatureClass.Search(pQueryFilter, False) Set pFeature = pFeatureCursor.NextFeature Do While Not pFeature Is Nothing pFeature.Delete ProgressBar1.value = ProgressBar1.value + 1 Me.Refresh Set pFeature = pFeatureCursor.NextFeature Loop Exit Sub ErrorHandler: End Sub </P> |
|
|
|
2楼#
发布于:2004-07-05 18:23
<P>谢谢!我已搞定!</P><PRE><PRE>Public Sub BorrarCapaSDE(strCapa As String)
On Error GoTo ControlError 'Check if the layer is in Map Dim pMxDocument As IMxDocument Dim pMap As IMap Dim pLayer As ILayer Dim pEnumLayer As IEnumLayer Set pMxDocument = Application.Document Set pMap = pMxDocument.FocusMap If pMap.LayerCount <> 0 Then Set pEnumLayer = pMap.Layers Set pLayer = pEnumLayer.Next Do While Not pLayer Is Nothing If pLayer.name = (strCapaVer) Then pMap.DeleteLayer pLayer Exit Do End If Set pLayer = pEnumLayer.Next Loop End If 'Open Default WorkSpace Dim pWSsde As IWorkspace Set pWSsde = openSDEWorkspace(gServer, gInstance, gUser, gPassword, "", "SDE.DEFAULT") 'Create iTransaction Object Dim ptrans As ITransactions Set ptrans = pWSsde 'Open Table Dim pFeatureWorkspace As IFeatureWorkspace Set pFeatureWorkspace = pWSsde Dim pFeatureLayer As IFeatureLayer Set pFeatureLayer = New FeatureLayer Set pFeatureLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass(strCapa) pFeatureLayer.name = pFeatureLayer.FeatureClass.AliasName Dim pTable As ITable Set pTable = pFeatureLayer.FeatureClass Dim pDataSet As IDataset Set pDataSet = pTable 'If we can delete table, do it If pDataSet.CanDelete Then ptrans.StartTransaction pDataSet.Delete ptrans.CommitTransaction blnBien = True End If Exit Sub ControlError: MsgBox Err.Description, vbExclamation, "" End Sub</PRE></PRE> [此贴子已经被作者于2004-7-6 8:33:23编辑过]
|
|