ArcEngine註冊版本編輯sde中的資料(解決報錯0x80040356)
1、問題提出
在我的上一篇博文中(ArcGIS編輯SDE的向量資料(集)(解決因版本化問題不能編輯))解決了在ArcGIS中編輯sde時遇到的未註冊導致不能編輯的問題,同樣,在ArcEngine中也可以用同樣的思路解決這個問題。這個問題比較簡單,所以為了增加篇幅,我在這篇博文中整理了一下我解決ArcEngine問題的一貫思路,如果比較趕時間可以跳過第二部分。
2、解決思路
我始終堅信遇到問題最好的解決辦法第一是幫助文件,第二是百度谷歌,所以在已經知道在ArcGIS中如何解決這個問題之後就可以在幫助文件中查詢相關內容,我們在幫助文件中搜尋“RegisterAsVersioned”,得到了下圖的結果:
這就可以知道我們應該呼叫“IVersionedObject”介面,按照ArcGIS的一貫做法,當然是呼叫最新的介面IVersionedObject3。
接下來我們把目光轉移到物件模型圖(安裝ao的路徑下找),這個介面是在ESRI.ArcGIS.Geodatabase名稱空間下,所以可以開啟“GeoDatabaseObjectModel”,搜尋IVersionedObject3,得到這個介面是在這裡,這是個抽象類:
所以我們可以這樣去實現它:
IVersionedObject3 versionedObject = pDataSet as IVersionedObject3;
接下來的步驟就和在arcgis中實現基本上一樣了。
3、程式碼實現:
網上我找了很多資料,這些程式碼大多隻是將編輯的模式設定未版本化模式,但是並沒有說怎樣進行版本化,所以,首先先判斷這個資料集是否已經註冊了版本,如果註冊了版本就直接設定編輯模式未版本化編輯,否則,就需要先註冊版本再編輯。按照這個邏輯,程式碼就應該是這樣的:
if (pWorkspace.Type == esriWorkspaceType.esriRemoteDatabaseWorkspace)
{
IVersionedObject3 versionedObject = pDataSet as IVersionedObject3;
//註冊版本
if (versionedObject != null && !versionedObject.IsRegisteredAsVersioned)
{
versionedObject.RegisterAsVersioned(true);
}
pEngineEditor.EditSessionMode = esriEngineEditSessionMode.esriEngineEditSessionModeVersioned;
}
//else
//{
// pEngineEditor.EditSessionMode = esriEngineEditSessionMode.esriEngineEditSessionModeNonVersioned;
//}
//設定編輯任務
pEngineEditor.StartEditing(pWorkspace, pMap);
如果對沒有註冊版本的sde資料集搶行進行編輯操作,那麼就會報錯:HRESULT:0x80040356
相關文章
- 程式碼編輯器:sublime text for Mac 註冊版Mac
- 解決多project的angular應用單元測試報 ChromeHeadlessCI未註冊的錯誤ProjectAngularChrome
- Sublime Text 4 Dev for Mac(程式碼編輯器)4.0中文註冊版devMac
- isNaN("abc")編譯報錯解決辦法NaN編譯
- vim 編輯報錯導致無法正常退出和編輯
- kaldi的編譯安裝與報錯解決方法編譯
- 資料庫無法註冊至監聽服務解決辦法資料庫
- WordPress中實現Markdown編輯的終極解決方案
- Delphi 6.0中屬性編輯器的解決方案 (轉)
- “正在註冊字型”問題解決
- 編寫註冊介面
- 重新註冊iis的.NET Framework版本Framework
- SS報錯的解決
- VSCode中Flow報錯解決VSCode
- 強大的程式碼編輯器Sublime Text for Mac註冊啟用版Mac
- 前端程式碼編輯神器:Sublime Text 4 Dev中文註冊版前端dev
- 資料網格的編輯
- hgdb資料編輯
- Greenplum初始化資料庫gpinitsystem報錯以及解決資料庫
- 企業雲盤幫你解決資料線上編輯混亂問題
- VMware Workstation各個版本的註冊碼
- mybatis報錯解決MyBatis
- DrawPad for Mac(圖形編輯軟體) v6.74註冊版Mac
- Modern CSV for mac(CSV檔案編輯器)v2.0.2註冊版Mac
- Modern CSV for mac(CSV檔案編輯器) v2.0.2註冊版Mac
- 程式碼編輯器:sublime text for Mac 4.0(4164)註冊漢化版Mac
- Laravel 安裝 voyager 出現的資料庫報錯問題解決Laravel資料庫
- Emoji表情符號錄入MySQL資料庫報錯的解決方案符號MySql資料庫
- ArcEngine 生成等值線變成點的疑似解決方案
- 解決“當前擴充套件快取策略沒有進行註冊”的錯誤套件快取
- 10.註冊和登入功能實現(3)—— 註冊資料寫入資料庫資料庫
- 在恢復目錄中註冊和登出資料庫資料庫
- HGDB之資料編輯
- Laravel對不同版本的MySQL字元編碼報錯問題LaravelMySql字元
- HTML文字編輯器:BBEdit for Mac14.6.8啟用版+註冊碼HTMLMac
- 在Weblogic中建立域(含報錯解決)Web
- 瞭解用於大資料解決方案的邏輯層大資料
- 幾個報錯的解決方法