从提供者获取数据库模式信息。

语法

Set recordset = connection.OpenSchema (QueryType, Criteria, SchemaID)

返回值

返回包含模式信息的 Recordset 对象。Recordset 将以只读、静态游标打开。

参数

QueryType   所要运行的模式查询类型,可以为下列任意常量。

Criteria   可选。每个 QueryType 选项的查询限制条件数组,如下所列:

QueryType

Criteria

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

PROCEDURE_TYPE

adSchemaProviderSpecific

参见说明

adSchemaProviderTypes

DATA_TYPE

BEST_MATCH

adSchemaReferentialConstraints

CONSTRAINT_CATALOG

CONSTRAINT_SCHEMA

CONSTRAINT_NAME

adSchemaSchemata

CATALOG_NAME

SCHEMA_NAME

SCHEMA_OWNER

adSchemaSQLLanguages

<无>

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   OLE DB 规范没有定义用于提供者模式查询的 GUID。如果 QueryType 设置为 adSchemaProviderSpecific,则需要该参数,否则不使用它。

说明

OpenSchema 方法返回与数据源有关的信息,例如关于服务器上的表以及表中的列等信息。

Criteria 参数是可用于限制模式查询结果的值数组。每个模式查询有它支持的不同参数集。实际模式由 IDBSchemaRowset 接口下的 OLE DB 规范定义。ADO 中所支持的参数集已在上面列出。

如果提供者定义未在上面列出的非标准模式查询,则常量 adSchemaProviderSpecific 将用于 QueryType 参数。在使用该常量时需要 SchemaID 参数传递模式查询的 GUID 以用于执行。如果 QueryType 设置为 adSchemaProviderSpecific 但是没有提供 SchemaID,将导致错误。

提供者不需要支持所有的 OLE DB 标准模式查询,只有 adSchemaTablesadSchemaColumnsadSchemaProviderTypes 是 OLE DB 规范需要的。但是对于这些模式查询,提供者不需要支持上面列出的 Criteria 条件约束。

远程数据服务用法   OpenSchema 方法在客户端 Connection 对象上无效。

注意   在 Visual Basic 中,在由 Connection 对象的 OpenSchema 方法所返回的 Recordset 中有 4 字节无符号整型 (DBTYPE UI4) 的列无法与其他变量比较。有关 OLE DB 数据类型的详细信息,请参阅“Microsoft OLE DB 程序员参考”的第十章和附录 A。