ArcEngine對Blob欄位賦值的方法

2022-03-22 07:42:23 字數 736 閱讀 3132

今天在測試資料入庫程式,發現對某個圖層操作之後,呼叫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...