Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I was wondering if there was a way to associate/persist some data about an SDE featureclass when viewing via ArcCatalog.

I know you can have metadata - but I don't want to use that, and I'm pretty sure that won't work for what I'm planning. I want to have a form that will show when you right click the layer, then you can fill in some details in a form and send that info to a nominated user via email or dump out to a text file.

So there is an issue of persistance here - I want users from various parts of the organisation to be able to view the extra info about the layer - so there must be something that SDE does to store info about a layer somewhere in the SDE tables.

If anyone can give some pointers/interfaces etc that would be great.

share|improve this question
    
What sort of "info" are you looking to get from SDE? –  Chad Cooper May 17 '11 at 15:29
    
Well, I can auto pop a list of field names, - the user can then check a check box next to them and write some comments about them, and the "receiver" would then interpret this and maybe publish this layer in a certain way in a web IMS application. To be honest it's not a problem getting info from a layer in SDE, it's just persisting user comments etc against a layer for others to pick up and use. –  Vidar May 17 '11 at 15:38
    
At the moment I'm reading up about Plug in data sources and seeing if theres anything that may be useful there. –  Vidar May 17 '11 at 16:23
    
When you say "right click the layer" do you really mean an ILayer? If so, have you considered using ILayerExtensions? –  Kirk Kuykendall May 17 '11 at 16:29
    
Yes Kirk, I think I remember using them for storing data in via IPropertySet in an mxd - and that seemed to work - I never thought this could work in SDE too. –  Vidar May 17 '11 at 17:04

2 Answers 2

up vote 2 down vote accepted

If you want to persist some data in a geodatabase, the customization to leverage are workspace extensions.

You would typically create a tool in ArcCatalog to register the workspace extension with the specific geodatabase and create special tables in that geodatabase that store your custom data. You can specify that your extension owns and manages these tables so that they are not normally visible within the workspace (by implementing DataDictionaryTableNames and PrivateTableNames.

Then, tools that need to work on this stored data communicate with the workspace extension to retrieve it or modify.

By implementing IWorkspaceEvents you can, say, delete some of your relevant persistent information when a dataset (e.g. feature class, table) gets deleted.

Note that there are two types of workspace extension registration, the overview document (first link of this post) provides good discussion of their advantages/disadvantages.

Might be too heavyweight in your scenario, though, but it is the recommended approach to these kind of tasks. Of course you can bypass the whole extension business and just store your data in a special table, which your custom tools will work with.

share|improve this answer
    
Does a workspace extension affect other users that don't have their ArcCatalog registered with a particular extension? I don't want to mess up the whole SDE repository for everyone else. –  Vidar May 17 '11 at 19:17
    
That depends on how they are registered. Check the "Geodatabase registration vs. component category registration" section of help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/… –  Petr Krebs May 17 '11 at 20:25

From your comments, sounds like you could store these custom comments/metadata/info in XML out on the filesystem and then you don't have to worry about persisting them. Would that work? Easy enough reading/writing XML in .NET with LINQ.

share|improve this answer
    
Sounds feasible - but I was hoping for a neater solution that the SDE architecture could support. –  Vidar May 17 '11 at 16:21

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.