MXD の SDE データ ソースを再設定

投稿日:2016/9/1 (木) 更新日:

Private Sub ReConnectToSDE()
    Dim pMapDocument As IMapDocument
    Set pMapDocument = New MapDocument
    pMapDocument.Open "D:\Workspace\Support\PathA.mxd"          '対象マップ ドキュメント
     
    Dim intMap As Integer
     
    For intMap = 0 To pMapDocument.MapCount - 1
        
        Dim pMap As IMap
        Set pMap = pMapDocument.Map(intMap)
                 
        Dim pLayers As IEnumLayer
        Set pLayers = pMap.Layers
         
        Dim pLayer As ILayer
        Set pLayer = pLayers.Next
         
        Do Until pLayer Is Nothing
             
            Dim pPropertySet As IPropertySet
            Set pPropertySet = New PropertySet
             
            'ArcSDE接続情報
            With pPropertySet
                .SetProperty "Server", "ServerName"               'サーバ
                .SetProperty "Instance", "5151"                 'インスタンス
                .SetProperty "Database", ""                     'データベース
                .SetProperty "user", "UserName"                    'ユーザ名
                .SetProperty "password", "UserPass"              'パスワード
                .SetProperty "version", "SDE.DEFAULT"           'バージョン
            End With
             
            Dim pDataLayer As IDataLayer
            Set pDataLayer = pLayer
             
            Dim pDatasetName As IDatasetName
            Set pDatasetName = pDataLayer.DataSourceName
             
            Dim pWorkspaceName As IWorkspaceName
            Set pWorkspaceName = New WorkspaceName
             
            pWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesGDB.SdeWorkspaceFactory"
            pWorkspaceName.ConnectionProperties = pPropertySet  'ArcSDE接続情報
             
            pDatasetName.Name = "aaa"                           'フィーチャクラス名
             
            Set pDatasetName.WorkspaceName = pWorkspaceName
             
            Set pLayer = pLayers.Next
             
        Loop
         
    Next intMap
     
    pMapDocument.Save True, False
    pMapDocument.Close
         
End Sub

関連記事

  • この記事を書いた人

羽田 康祐

伊達と酔狂でエクストリーム スポーツに挑む GIS エンジニア。 GIS、IT、趣味に関して日々の出来事で学んだ記憶を記録するためにブログを書いています。同じ問題に出会った方の参考になっていただければ幸いです。GIS を使った自己紹介はこちら

-プログラミング, ArcGIS
-,

Copyright© WINGFIELD since1981 , 2019 All Rights Reserved.