內蒙古java團隊

          j2se,j2ee開發(fā)組
          posts - 139, comments - 212, trackbacks - 0, articles - 65
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          ArcEngine中版本的使用

          Posted on 2007-03-08 16:40 帥子 閱讀(843) 評論(0)  編輯  收藏 所屬分類: J2EE技術專區(qū)
          ArcEngine中版本的使用

          使用版本的過程分為以下幾個步驟
          1.將Workspace或者數據集注冊為使用版本的Workspace或者數據集
          IVersionedObject verObj= ds as IVersionedObject;//假設ds 是一個數據集
          if(verObj!=null&&(!verObj.pVerdObj.IsRegisteredAsVersioned))
          {
          ?//數據集可以被注冊而且還沒有被注冊為版本數據集
          ?//下面的方法 如果使用參數 false 那么表示注冊為沒有版本的數據
          ?//也就是反注冊
          ?verObj.RegisterAsVersioned(true);
          }
          2.獲取版本數據
          ?獲取版本數據的過程比較簡單。在連接數據庫的時候 需要提供版本字符串。
          ?默認是使用sde.Default這個版本。如果使用其他版本字符串就會獲得其他版本的數據。
          3.建立新版本
          ?//假設space 是一個Workspace 而且是一個企業(yè)數據庫的Workspace。個人數據庫和文件工作空間是
          ?//沒有版本功能的。
          ?IVersionedWorkspace pVerWS=(IVersionedWorkspace)space;
          ?IVersion pV=pVerWS.DefaultVersion;//上一級版本 這里使用默認版本作為上一級版本???
          ?IVersion pVC=pV.CreateVersion(verName);?//建立版本???
          ?pVC.Description=verDesc;//版本的描述
          ?pVC.Access=esriVersionAccess.esriVersionAccessPrivate;//版本的存取策略為私有
          ?pNewVerWS=(IVersionedWorkspace)pVC;//獲取使用新版本的Workspace的一種快捷方式
          4.合并版本數據
          ?合并數據使用IVersionEdit接口
          ?這個接口有VersionedWorkspace 實現(xiàn)。
          ?下面介紹這個接口
          ?CanPost 當前正在編輯的版本是否可以提交到目標版本中去 。
          ??CommonAncestorVersion 當前版本和目標版本的共同祖先 。
          ??ConflictClasses 有沖突的Class。
          ??ModifiedClasses 在兩個版本中發(fā)生變化的Class 。
          ??Post 提交版本數據
          ??PreReconcileVersion? 目標版本在檢測沖突之前的狀態(tài)(?)。
          ??Reconcile 測試數據是否沖突 如果返回true表示有沖突
          ??ReconcileVersion? 目標版本在沖突檢測開始的時候的狀態(tài)(?)
          ??StartEditingVersion 目標版本開始編輯的時候的狀態(tài) (?)
          ??在提交數據之前 一定要調用Reconcile 否則很有可能會返回錯誤。

          5.瀏覽工作版本元數據
          ?瀏覽版本元數據是指統(tǒng)計工作空間中一共有哪些版本。某個指定的版本的父親或祖先是誰?
          ?他又有哪些派生的版本?
          ?IVersionInfo 接口提供了這些信息
          ?下面是IVersionInfo接口的詳細信息:
          ?Access 接口的訪問策略
          ?Ancestors 版本的所有祖先,按照由近到遠的次序排列
          ?Children 該版本的直接派生版本。
          ?Created 創(chuàng)建的時間
          ?Description 版本的描述
          ?IsOwner 當前用戶是不是擁有該版本
          ?Modified 最后修改時間
          ?Parent 版本的直接父親接電
          ?VersionName 版本的名稱
          ?
          ?注意VersionInfo 實現(xiàn)了上述接口 但是VersionInfo 不是一個可以用來創(chuàng)建對象的類。我們只能通過
          ?別的方式獲取他
          ?IVersionedWorkspace.FindVersion("目標版本名稱");
          ?或者
          ?IVersionedWorkapce.Versions 獲取所有當前用戶可以獲得的版本。包括自己建立 別人建立的public 和protected的版本
          ?但是如果別人建立的版本是protected 的那么 你就只能看到數據。不能編輯。

          主站蜘蛛池模板: 敦煌市| 齐齐哈尔市| 神池县| 南川市| 玉树县| 邛崃市| 安图县| 罗定市| 汤原县| 蒲城县| 满洲里市| 望城县| 昌吉市| 深泽县| 依安县| 屯留县| 迁西县| 周口市| 新丰县| 康定县| 宜昌市| 丰城市| 汽车| 澄江县| 龙岩市| 苗栗市| 万宁市| 蒙阴县| 平遥县| 阳东县| 西藏| 新兴县| 曲阳县| 蒲江县| 彭阳县| 敖汉旗| 陆丰市| 温宿县| 海晏县| 怀仁县| 健康|