今天在測試資料入庫程式,發現對某個圖層操作之後,呼叫stopoperation,會出現「嘗試寫入或讀取受保護的記憶體」錯誤。
經過測試,最終發現是因為該圖層包含有blob欄位,而**沒有專門對blob欄位進行處理。
解決辦法:
1、需要判斷字段型別,如果是blob型別,呼叫下面輔助方法獲取blob值:
imemoryblobstreamvariant varblobstream = objfieldvalue as imemoryblobstreamvariant;
if (varblobstream == null) return null;
object objvalue;
varblobstream.exporttovariant(out objvalue);
byte bytesarray = objvalue as byte;
2、然後呼叫下面方法賦值:
imemoryblobstream pmbs = new memoryblobstreamclass();
imemoryblobstreamvariant varblobstream = (imemoryblobstreamvariant)pmbs;
object objvalue = bytesarray;
varblobstream.importfromvariant(objvalue);
pfeature.set_value(posfield, varblobstream);
ArcEngine將物件儲存到Blob欄位中!
在geodatabase中有一張table,希望通過ae開發的方式將資訊儲存到表的乙個blob欄位中。這個該如何實現?1 iworkspacename pwpsname null 當前工作空間名稱 2 pwpsname gworksapce.createaccessworkspace 3if pwp...
ArcEngine中對Feature的編輯
arcengine中對feature的編輯 對feature的編輯分為以下幾個部分 1.新建 2.修改 3.刪除 涉及到的介面有以下幾個 iworkspaceedit ifeatureclass ifeaturecursor ifeature 其中iworkspaceedit用於啟動編輯 開始編輯操...
ArcEngine中對Feature的編輯
arcengine中對feature的編輯 arcengine中對feature的編輯 對feature的編輯分為以下幾個部分 1.新建 2.修改 3.刪除 涉及到的介面有以下幾個 iworkspaceedit ifeatureclass ifeaturecursor ifeature 其中iwor...