Suite

ArcObjects modifie/met à jour la table Oracle ODBC


Une table Oracle ODBC attachée par OLE dans ArcMap peut-elle être modifiée/mise à jour à l'aide d'ArcObjects ? Si oui, quelles sont les étapes procédurales pour le faire?

Existe-t-il des exemples de code montrant comment procéder ?


Je peux comprendre pourquoi vous souhaitez utiliser ArcObjects au lieu d'ADO pour mettre à jour ou lire les tables métier.

Lorsqu'ArcMap se connecte à votre géodatabase, il établit une connexion dédiée appelée espace de travail. Cela semble être un gaspillage de mémoire et de ressources d'établir une autre connexion via ADO à votre géodatabase alors que vous disposez d'une connexion existante que vous pouvez utiliser. Ceci est particulièrement valable lorsque vous avez plusieurs utilisateurs, générer deux connexions pour chaque utilisateur peut sembler inefficace.

Pour mettre à jour ou lire votre table à partir d'ArcMap, vous devez d'une manière ou d'une autre accéder à l'espace de travail. Ce moyen facile est de l'obtenir à partir de la première couche. Le code suivant est en VB.NET

Dim pWorkspace as IWorkspace Dim pMxdoc as ImxDocument = application.document ' obtenir le document arcmap Dim pFLayer as IFeatureLayer = pMxdoc.FocusMap.Layers(0) Dim pDS as IDataset = pFLayer.FeatureClass pWorkspace = pDs.Workspace

maintenant que nous avons l'espace de travail, vous pouvez l'utiliser pour ouvrir votre table par nom et mettre à jour le champ de nom de l'enregistrement ayant l'ID d'objet 1235

Dim pFWorkspace As IFeatureWorkspace Dim pTable As ITable = pFWorkspace.OpenTable("mytablename") 'commencer l'édition Dim pEWorkspace As IWorkspaceEdit = pWorkspace pEWorkspace.StartEditing(False) pEWorkspace.StartEditOperation() Dim pRow As IRow = pTable.Get'Row(1235) . Ligne particulière à mettre à jour pRow.Value(pRow.Fields.FindField("NAME")) = "A NEW NAME" pRow.Store() pEWorkspace.StopEditOperation() pEWorkspace.StopEditing(True)


Voir la vidéo: Oracle, connexion ODBC avec passerelle service hétérogène HS (Octobre 2021).