5

ArcGIS Workgroup Edition 9.3.1, MS SQL 2005 Express

I have some attribute data that I want to periodically update with information from another RDBMS using SQL UPDATE commands. The data is versioned and we were planning on creating a "sql-updates" version just for this purpose, since others have said that doing this in the default version is not a good practice. Is this possible and what would be the general or best method of doing it?

One possibility would be using these stored procedures: set_current_version, edit_version (1 - start session), run my updates, and edit_version (2 - close session). I don't know if this is the correct way, and if delta tables get entries used for reconcilliation with the other versions. Note that "sdetable" is not available with Workgroup edition.

Another possibliity would be creating a separate table for this data, then joining the data with the feature class data, which would allow direct SQL updates to the separate table.

2 Answers 2

3

The *set_current_version/edit_version* that you describe above is the right way to do it. The delta tables will get modified accordingly. Afterwards, you will need to reconcile (pushes changes and figures out if there are any conflicts)and post (you can think of it as a commit) with the parent version.

The only caveat is that if you have GeoDatabase-level customizations (e.g. some custom ArcMap extension that runs during your edit sessions) it will not fire since you are doing edits at one level of abstraction below the GeoDatabase.

5
  • 1
    It looks like this is how we have decided to proceed, but haven't had time to try it yet. We don't have any custom extensions that need to run for this, but it was good to point that out. We're considering upgrading to the Enterprise Edition when we upgrade to ArcGIS 10.
    – Bratch
    Apr 22, 2011 at 0:51
  • 1
    From the ArcSDE point of view, AFAIK, there are no major differences between Workgroup and Enterprise Edition, except for some intentional hard-coded limits at the GeoDatabase level (i.e ArcObjects) and Desktop level side (i.e ArcMap/ArcCatalog/etc). So the ArcSDE code should be just the same regardless of ArcSDE license. Good luck Apr 22, 2011 at 13:56
  • I didn't see the command line tools in the product matrix here esri.com/software/arcgis/arcgisserver/pdfs/…. Those command line tools are no where on our server, so either they are not included or were somehow not installed.
    – Bratch
    Apr 24, 2011 at 18:23
  • You are correct, the command-line tools are not available in the Workgroup edition. So you are limited in some of the advanced SDE functions you can use. Some things like Spatial-Views and multi-version-views would not be available to you.
    – D.E.Wright
    Apr 24, 2011 at 21:35
  • Workgroup is the std SDE, only that they are running with direct connect. Up to 2 years ago, you were able to just copy the SDE exes from somewhere else, and they would work. Not sure if they added licensing code, but I highly doubt it. Apr 26, 2011 at 3:43
1

My teeth have been cut on the enterprise sde so workgroup functionality is not altogether familiar to me.
Also without a strong programming background I usually rely on OTB solutions.
I was thinking like you and considered using the sdelayer register command. It may work, especially if your previous answer was "no" you don't have network or topology to contend with.
See this help top line

So as you allude, load a new table (or connect and update) to the gdb. register it to sde. then perform your join.

You might have to consider dropping your join and unregistering the business table prior to each update.

1
  • Although loading a new table will work, we have decided to do it with the set_current_version/edit_version stored procedures. Good command reference link.
    – Bratch
    Apr 22, 2011 at 0:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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