Obtains database schema information from the provider.
Syntax
Set recordset = connection.OpenSchema (QueryType, Criteria, SchemaID)
Return Values
Returns a Recordset object that contains schema information. The Recordset will be opened as a read-only, static cursor.
Parameters
QueryType The type of schema query to run. Can be any of the constants listed below.
Criteria Optional. An array of query constraints for each QueryType option, as listed below.
QueryType values | Criteria values |
adSchemaAsserts | CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME |
adSchemaCatalogs | CATALOG_NAME |
adSchemaCharacterSets | CHARACTER_SET_CATALOG CHARACTER_SET_SCHEMA CHARACTER_SET_NAME |
adSchemaCheckConstraints | CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME |
adSchemaCollations | COLLATION_CATALOG COLLATION_SCHEMA COLLATION_NAME |
adSchemaColumnDomainUsage | DOMAIN_CATALOG DOMAIN_SCHEMA DOMAIN_NAME COLUMN_NAME |
adSchemaColumnPrivileges | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME GRANTOR GRANTEE |
adSchemaColumns | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME |
adSchemaConstraintColumnUsage | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME |
adSchemaConstraintTableUsage | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME |
adSchemaForeignKeys | PK_TABLE_CATALOG PK_TABLE_SCHEMA PK_TABLE_NAME FK_TABLE_CATALOG FK_TABLE_SCHEMA FK_TABLE_NAME |
adSchemaIndexes | TABLE_CATALOG TABLE_SCHEMA INDEX_NAME TYPE TABLE_NAME |
adSchemaKeyColumnUsage | CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME |
adSchemaPrimaryKeys | PK_TABLE_CATALOG PK_TABLE_SCHEMA PK_TABLE_NAME |
adSchemaProcedureColumns | PROCEDURE_CATALOG PROCEDURE_SCHEMA PROCEDURE_NAME COLUMN_NAME |
adSchemaProcedureParameters | PROCEDURE_CATALOG PROCEDURE_SCHEMA PROCEDURE_NAME PARAMTER_NAME |
adSchemaProcedures | PROCEDURE_CATALOG PROCEDURE_SCHEMA PROCEDURE_NAME PARAMTER_TYPE |
adSchemaProviderSpecific | See Remarks |
adSchemaProviderTypes | DATA_TYPE BEST_MATCH |
adSchemaReferentialConstraints | CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME |
adSchemaSchemata | CATALOG_NAME SCHEMA_NAME SCHEMA_OWNER |
adSchemaSQLLanguages | <none> |
adSchemaStatistics | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME |
adSchemaTableConstraints | CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE |
adSchemaTablePrivileges | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME GRANTOR GRANTEE |
adSchemaTables | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE |
adSchemaTranslations | TRANSLATION_CATALOG TRANSLATION_SCHEMA TRANSLATION_NAME |
adSchemaUsagePrivileges | OBJECT_CATALOG OBJECT_SCHEMA OBJECT_NAME OBJECT_TYPE GRANTOR GRANTEE |
adSchemaViewColumnUsage | VIEW_CATALOG VIEW_SCHEMA VIEW_NAME |
adSchemaViewTableUsage | VIEW_CATALOG VIEW_SCHEMA VIEW_NAME |
adSchemaViews | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME |
SchemaID The GUID for a provider-schema schema query not defined by the OLE DB specification. This parameter is required if QueryType is set to adSchemaProviderSpecific; otherwise, it is not used.
Remarks
The OpenSchema method returns information about the data source, such as information about the tables on the server and the columns in the tables.
The Criteria argument is an array of values that can be used to limit the results of a schema query. Each schema query has a different set of parameters that it supports. The actual schemas are defined by the OLE DB specification under the IDBSchemaRowset interface. The ones supported in ADO are listed above.
The constant adSchemaProviderSpecific is used for the QueryType argument if the provider defines its own nonstandard schema queries outside those listed above. When this constant is used, the SchemaID argument is required to pass the GUID of the schema query to execute. If QueryType is set to adSchemaProviderSpecific but SchemaID is not provided, an error will result.
Providers are not required to support all of the OLE DB standard schema queries. Specifically, only adSchemaTables, adSchemaColumns, and adSchemaProviderTypes are required by the OLE DB specification. However, the provider is not required to support the Criteria constraints listed above for those schema queries.
Remote Data Service Usage The OpenSchema method is not available on a client-side Connection object.