ArcGISEngine: Редактирование данных через SDE

0 голосов
спросил 11 Март, 08 от tntman (1,360 баллов) в категории Программные продукты Esri
Доброе время суток! Насколько я понял, чтобы редактировать данные в ArcGISEngine, требуется лицензия на Geodatabase Update Extension. В нашей поставке EDN такая лицензия есть, но редактировать данные в БД через SDE я не могу, выводится сообщение, что отсутсвует необходимая лицензия.
Какую лицензию необходимо установить, чтобы была возможность редактировать данные в ArcGISEngine через SDE или это в принципе не возможно?

10 Ответы

0 голосов
ответил 12 Март, 08 от sschainik (4,900 баллов)
у вас в приложении какой вид лицензии инициализирован?
0 голосов
ответил 13 Март, 08 от tntman (1,360 баллов)
Authorization Summary выдает:
- ArcGIS Engine Runtime (standardengine)
- Geodatabase Read/Write (gdbedit)
- ArcGIS Engine Developer Kit (designer)
- разные ArcGIS Engine extension

Поставка EDN, комплект без лицензии ArcView

Локальная БД и shape редактируется нормально...
0 голосов
ответил 13 Март, 08 от sschainik (4,900 баллов)
я имел ввиду что то типа:

Private gAoInitialize As IAoInitialize

Private Sub Form_Initialize()
'Initialize the arcgis license
If CheckOutLicenses(esriLicenseProductCodeArcInfo) <> esriLicenseCheckedOut Then
    If CheckOutLicenses(esriLicenseProductCodeArcEditor) <> esriLicenseCheckedOut Then
      If CheckOutLicenses(esriLicenseProductCodeArcView) <> esriLicenseCheckedOut Then
        If CheckOutLicenses(esriLicenseProductCodeEngine) <> esriLicenseCheckedOut Then
          MsgBox "The initialization failed. This application cannot run!"
          Unload Me
          Exit Sub
        End If
      End If
    End If
End If
End Sub

Private Function CheckOutLicenses(productCode As esriLicenseProductCode) As esriLicenseStatus

Dim licenseStatus As esriLicenseStatus
licenseStatus = esriLicenseUnavailable

Set gAoInitialize = New AoInitialize
If gAoInitialize Is Nothing Then CheckOutLicenses = licenseStatus

'Determine if the product is available
licenseStatus = gAoInitialize.IsProductCodeAvailable(productCode)
If (licenseStatus = esriLicenseAvailable) Then
      licenseStatus = gAoInitialize.Initialize(productCode)
End If
CheckOutLicenses = licenseStatus

End Function
0 голосов
ответил 13 Март, 08 от tntman (1,360 баллов)
Проверил, на лицензии:
    esriLicenseProductCodeEngineGeoDB,
    esriLicenseProductCodeEngine,
    esriLicenseProductCodeArcEditor,
    esriLicenseProductCodeArcInfo
возвращает статус esriLicenseAvailable, думаю это положительный ответ.


Проверьте кто-нибудь пожалуйста, вот код написаный на Delphi:

// В компонент MapControl1 загружен mxd проект со слоем
// из БД Oracle (слой версионный), думаю можно использовать любую БД, где для редакитрования требуется лицензия ArcEditor

var pDataset: IDataset;
    pWorkspaceEdit: IWorkspaceEdit;
    pLayer: ILayer;    
    pWorkspace: IWorkspace;
    pFeature: IFeature;
    pFeatureLayer: IFeatureLayer;
    pFCursor: IFeatureCursor;
    pFields: IFields;
    i: integer;
begin
(MapControl1.Map).Get_Layer(0, pLayer);
pFeatureLayer:=pLayer as IFeatureLayer;
pDataset:=pFeatureLayer as IDataset;
pDataset.Get_Workspace(pWorkspace);
pFeatureLayer.Search(nil, false, pFCursor);
pFCursor.NextFeature(pFeature);
pFeature.Get_Fields(pFields);
pFields.FindField('NAME', i);
pWorkspaceEdit:=pWorkspace as IWorkspaceEdit;
pWorkspaceEdit.StartEditOperation;
pFeature.Set_Value(i, 'Test');
pFeature.Store;
pWorkspaceEdit.StopEditOperation;
end;    
0 голосов
ответил 14 Март, 08 от sschainik (4,900 баллов)
вообще наверно уж лучше всего инициальзировать лицезию esriLicenseProductCodeArcInfo, чтоб уж наверняка

а дельфи нормально загрузились компоненты mapcontrol и др.? я в версии 9.0 в билдер не смог подгрузить компоненты
0 голосов
ответил 16 Апр, 08 от filippov70 (5,320 баллов)
Добрый день, аналогичная проблема.
Использую EDN 9.2 под .NET, сервис пак 4.

использую стандартный инструмент на стандартом же тулбаре от ESRI, Editor который. StartEditing работает с любыми источниками поддерживаемых данных, но при попытке открыть сеанс редактирования к SDE говорит, что нужна дополнительная лицензия.

когда активировал лицензию на ESRI, был отмечен пункт Geodatabase Update, в файлах ecp есть строки gdbedit, 92, ............

SDE естественно тоже версии 9.2
0 голосов
ответил 16 Апр, 08 от tntman (1,360 баллов)
У меня эта проблема была при использовании стандартного тулбара от ESRI, пока не решил. Пришлось переписывать инструмент Editor. Через ArcObjects все чудненько редактируется...
0 голосов
ответил 16 Апр, 08 от filippov70 (5,320 баллов)
Anton, а SDE у вас с версионингом или без?
я уже все версии убрал, все в дефолтовой.
Кстати, у вас есть опыт многопользовательской работы в SDE без версий, длинные транзакции.
0 голосов
ответил 16 Апр, 08 от tntman (1,360 баллов)
Редактируется с версиями и без версий. Выше я приводил код, вот примерно по такому принципу и редактирую...
Опыта многопользовательской работы в SDE без версий нет, думаю там действуют правила самой БД.
0 голосов
ответил 17 Апр, 08 от filippov70 (5,320 баллов)
ОК, спасибо
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...