A workspace may have a set of properties that may be queried using the optional IWorkspaceProperties interface. Properties are organized into property groups identified by an emumeration. Within a property group, each property is identified by an enumeration. The property groups supported are WorkspacePropertyGroup and TablePropertyGroup.
These are the properties in WorkspacePropertyGroup:
WorkspacePropCanExecuteSQL is True if the workspace supports the IWorkspace::ExecuteSQL method. Note that all feature workspaces accept some form of SQL where clause.
WorkspacePropCanEdit is True if the workspace supports edit sessions that are managed with the IWorkspaceEdit interface.
WorkspacePropIsReadonly is True if the workspace cannot be updated.
WorkspacePropSupportsQualifiedNames is True if the workspace supports qualified names.
WorkspacePropSupportsMetadata is True if the workspace supports user metadata accessed via the IMetadata interface and exposed to the user in ArcCatalog.
WorkspacePropCanAnalyze is True if the workspace supports the Analyze method on tables in the workspace.
WorkspacePropCanGetConfigurationKeywords is True if the geodatabase is stored in an ArcSDE 8.1 or higher database or File Geodatabase, in which case that database is aware and can return its configuration keywords via the IWorkspaceConfiguration::ConfigurationKeywords method.
WorkspacePropIsGeoDatabase is True is the workspace is a geodatabase.
WorkspacePropMaxWhereClauseLength returns the maximum length of the where clause supported by the workspace for use in queries.
These are the properties in the TablePropertyGroup :
TablePropRowCountIsCalculated is True if the ITable::RowCount method requires calculation, that is, True if getting the row count is an expensive operation.
TablePropCanAddField is True if this workspace supports adding fields to tables. Note that if True, the ITable::AddField method may still fail on specific tables, for example because of a lack of privileges.
TablePropCanDeleteField is True if this workspace supports deleting fields from tables. The method may still fail on a specific table, for example because of a lack of privileges.
TablePropCanAddIndex is True if this workspace supports adding indexes to tables. The method may still fail on a specific table, for example because of a lack of privileges.
TablePropCanDeleteIndex is True if this workspace supports deleting indexes for tables. The method may still fail on a specific table, for example because of a lack of privileges.
TablePropOIDIsRecordNumber is True if the OID for rows from this table is the record number of the row. This implies that OIDs are continuous
TablePropMaxFieldNameLength returns the maximum length of field names supported by this workspace.
TablePropBindCursor returns True if this table has support for bind cursors.
Applications can use the above properties to determine the capability of the workspace they are working with. Note that if the optional IWorkspaceProperties interface is not implemented, applications should assume that the above capabilities are supported. Applications should always be prepared to deal with the absense of optional interfaces or with failure when executing methods on mandatory interfaces, for example because of privileges or licensing issues.