SDE feature class visibility in ArcCatalog

6910
8
02-16-2011 10:25 AM
DeeptiVB
New Contributor II
Environment: ArcSDE 10, SQL Server 2008, ArcGIS 10

Hello:

I recently inherited the administration of an ArcSDE 10 database. As a part of the learning process while browsing through the SQL Server SDE, I found a few feature classes which can be seen in SQL Server object explorer but are invisible in ArcCatalog. The invisible ones do have the Shape(geometry) field and the OBJECTID field (looks as if they came from an archive which might have been a personal geodatabase or shape files collection.) I assume the previous administrator had reasons to make these invisible in ArcCatalog, but what I am interested in is,

1. How are feature classes made invisible in ArcCatalog
2. How could these invisible feature classes made visible if required, since ArcCatalog cannot see them it has to be done on the SQL Server back-end or using command line?

Thanks in advance,

-Deepti
0 Kudos
8 Replies
VinceAngelo
Esri Esteemed Contributor
It's possible that the tables contain datatypes which ArcGIS can't represent (like 64-bit
integers), but which ArcSDE can, and it's possible that the layer was deleted and then
restored in isolation (without restoring SDE user component references, corrupting the
database), and it's possible that the GEOMETRY/GEOGRAPHY table was simply never
registered with ArcSDE (but this doesn't sound like your issue).  It's also possible that
the table is reflected in the geodatabase dictionary and the ArcSDE table registry, but
that the table is registered as HIDDEN (though last time I tried to do this, it didn't work).

The easiest way to hide a table is to not grant SELECT access to the user from whom
you want it hidden.

- V
0 Kudos
DeeptiVB
New Contributor II
Vince,

Appreciate the reply.

The feature classes that are not showing up are almost duplicates of the FCs that are already visible in ArcCatalog. Say for example I have a feature class called Rivers, which shows up in SDE SQL interface and in ArcCatalog, there is another feature class called Rivers_D which has 10 more records(legacy data) than Rivers but doesn't show up in ArcCatalog. Both Rivers and Rivers_D have the almost same schema, except that Rivers_D has a GDB_OID(integer) and GDB_Date(datetime) fields. This rules out the possibility that the invisible feature class might contain datatypes that ArcGIS can't represent.

The invisible feature classes or their columns are in the SDE_table_registry, SDE_geometry_columns, SDE_layers, SDE_column_registry etc, wherever the registered feature classes/columns appear. So my guess is registration is not an issue either.

Do you know in which SDE system table would it say if a table is hidden when it was registered?

The most confusing issue for me is this was done on purpose, all the hidden layers are suffixed with "_D" in their names. It is not an issue of one feature class getting corrupted by chance.

One thing I noted was in the SDE_table_registry the rowid_column for Rivers(visible in ArcCatalog) is OBJECTID whereas for Rivers_D(not visible in ArcCatalog) it has GDB_OID column. Is it possible that ArcCatalog can render the feature class only if OBJECTID is in the rowid_column?
[Ok, I just found out that one of the legacy feature classes which has GDB_OID in the rowid column in SDE_table_registry is visible in ArcCatalog, so that is not it either.]

As far as permissions are concerned I am the dbo, so I'd think everything should be visible to me at least.

Thanks to anyone who'll attempt a reply.

-Deepti
0 Kudos
VinceAngelo
Esri Esteemed Contributor
Visibility is a property of table registration, but it's bitmasked into object_flags in the registry,
so 'sdetable -o describe_reg' is the easiest way to check for "Visibility :Hiden".

- V
0 Kudos
DeeptiVB
New Contributor II
Alright, checked using sdetable -o describe_reg command. All feature classes have Visibility: Visible, those which show up in ArcCatalog and those which don't. Thank you.
-Deepti
0 Kudos
RandyKreuziger
Occasional Contributor III
Are you using the same login when browsing through ArcCatalog that you are in SQL Server?  If not the login used in AC might not have the proper priviledges set.
0 Kudos
DeeptiVB
New Contributor II
Are you using the same login when browsing through ArcCatalog that you are in SQL Server?  If not the login used in AC might not have the proper priviledges set.


It is my windows login(OS authentication) at both places.
0 Kudos
DeeptiVB
New Contributor II
Ok, finally found a difference between visible feature classes and invisible feature classes. It should have been obvious if I had more experience in SDE - invisible feature classes were the ones which did not have a spatial index built.

Now my question is how do I build spatial index from SQL server or SDE command line for these feature classes. Cannot create spatial index from arc clients since these feature classes are not visible to arc clients. Can I use the Oracle syntax in this link without the parameters in SQL Server?

(Environment: SQL Server 2008, ArcSDE 10, Shape:Geometry)

Thank you,
-Deepti
0 Kudos
VinceAngelo
Esri Esteemed Contributor
No, you cannot use Oracle's spatial index syntax in SQL-Server. A google on
"create index geometry microsoft" generated this link.

Note that tables with GEOMETRY/GEOGRAPHY columns are not ArcSDE layers
until they're registered with 'sdelayer -o register'.  You could also use the
Query Layers capability of ArcGIS 10, but that won't make the data available
through ArcSDE connections.

- V
0 Kudos