Suite

Déterminer si la table est inscrite dans la géodatabase avec ArcObjects


Dans ArcCatalog, nous pouvons enregistrer une table dans la GeoDatabase en utilisant le menu contextuel des tables. Maintenant, j'essaie de trouver un moyen avec ArcObjects de détecter si une ITable est déjà enregistrée, est-ce même possible?

Je sais que les tables enregistrées sont répertoriées dans leGDB_ITEMStable système, mais certaines connexions SDE n'ont pas d'accès en lecture à cette table, ou uniquement avec un qualificatif différent (inconnu). La lecture directe de la table système n'est donc pas une option dans ce cas.


Finalement, avec un peu de chance, j'ai trouvé la réponse moi-même. Il existe une interface IFeatureWorkspaceManage qui est prise en charge par les espaces de travail de fonctionnalité, et là nous pouvons demander cette information.

IDataset dataset =… ; IFeatureWorkspaceManage workspaceManage = dataset.Workspace as IFeatureWorkspaceManage; bool isRegistered = false; if (workspaceManage != null) isRegistered = workspaceManage.IsRegisteredAsObjectClass(dataset.Name);

Pour enregistrer une table non enregistrée, nous pouvons utiliser :

IClassSchemaEdit.RegisterAsObjectClass()


Voir la vidéo: GeodatabaseBasicsPart1 (Octobre 2021).