代码 AO中直接加载ArcSDE矢量数据举例

在实际项目中,经常需要在AO中直接加载ArcSDE矢量数据以便使用,本文将结合实际代码讲解如何实现。

Public Function addSDEData(Server As String, Instance As String, User As String, _
 Password As String, featureClass As String, Optional version As String = "SDE.DEFAULT")
 On Error GoTo EH

 Dim pWorkspaceFactory As IWorkspaceFactory
 Dim pWorkspace As IFeatureWorkspace
 Dim pPropSet As IPropertySet
 Dim pClass As IFeatureClass
 Dim pLayer As IFeatureLayer
 Dim pMxDoc As IMxDocument

 Set pWorkspaceFactory = New SdeWorkspaceFactory
 Set pPropSet = New PropertySet

 With pPropSet '设置ArcSDE连接属性
  .SetProperty "SERVER", Server
  .SetProperty "INSTANCE", Instance
  .SetProperty "USER", User
  .SetProperty "PASSWORD", Password
  .SetProperty "VERSION", version '可选,缺省为SDE.DEFAULT版本
 End With

 Set pWorkspace = pWorkspaceFactory.Open(pPropSet, 0)
 Set pClass = pWorkspace.OpenFeatureClass(featureClass)

 Set pLayer = New FeatureLayer
 Set pLayer.featureClass = pClass
 pLayer.Name = pClass.AliasName
 
 Set pMxDoc = ThisDocument
 pMxDoc.AddLayer pLayer
 pMxDoc.ActiveView.PartialRefresh esriViewGeography, pLayer, Noting
 Exit Function
EH:
 MsgBox Err.Description, vbInformation, "加载数据错误"
End Function