У меня есть уровень ГИС, поддерживаемый MSSQL db. Функции на слое имеют, скажем, одно поле типа esriFieldTypeString и одно из типов esriFieldTypeBlob. Я могу редактировать поле строки очень хорошо, но, когда я пытаюсь отредактировать blob, StopEditOperation() генерирует очень общее исключение (сообщение: «Ошибка HRESULT E_FAIL была возвращена из вызова COM-компонента»., Код ошибки: -2147467259). Я не мог найти ничего связанного в журнале сервера. Кто-нибудь знает, что происходит?Ошибка редактирования поля blob в ArcGIS Engine
IServerContext serverContext = GetServerContext(agsConn, serviceName);
ILayer layer = GetILayer(layerName, serverContext);
IWorkspace workspace = GetIWorkspace(layer);
var feature = GetIFeature(objectId, workspace, layer);
var workspaceEdit = (IWorkspaceEdit)workspace;
workspaceEdit.StartEditing(false);
workspaceEdit.StartEditOperation();
var index = feature.Fields.FindField(featureDetailName);
IField field = feature.Fields.get_Field(index);
byte[] byteArray = {1, 2, 3};
MemoryBlobStream blob = new MemoryBlobStream();
((IMemoryBlobStreamVariant)blob).ImportFromVariant(byteArray);
if (field.CheckValue(blob))
{
feature.set_Value(index, blob);
}
feature.Store();
workspaceEdit.StopEditOperation();
workspaceEdit.StopEditing(true);
serverContext.RemoveAll();
serverContext.ReleaseContext();
Я попытался их форумы первым, но не удачи. –