OpenSchema 方法
从提供者获取数据库模式信息。
语法
Set
recordset
=
connection
.OpenSchema (
QueryType
,
Criteria
,
SchemaID
)
返回值
返回包含模式信息的
Recordset
对象。
Recordset
将以只读、静态游标打开。
参数
QueryType
所要运行的模式查询类型,可以为下列任意常量。
Criteria
可选。每个
QueryType
选项的查询限制条件数组,如下所列:
值 |
QueryType 值 |
描述 |
Criteria 值 |
-1 | adSchemaProviderSpecific | 如果提供者定义自己的非标准模式查询,则将 使用该常量。 | Providerspecific |
0 |
AdSchemaAsserts |
返回目录中定义的断言 |
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME |
1 |
AdSchemaCatalogs |
返回与目录中可通过DBMS访问的目录相关的物理属性 | CATALOG_NAME |
2 |
AdSchemaCharacterSets |
返回目录中定义的字符集 |
CHARACTER_SET_CATALOG CHARACTER_SET_SCHEMA CHARACTER_SET_NAME |
5 |
AdSchemaCheckConstraints |
返回目录中定义的校验约束 |
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME |
3 |
AdSchemaCollations |
返回目录中定义的字符序列 |
COLLATION_CATALOG COLLATION_SCHEMA COLLATION_NAME |
11 |
AdSchemaColumnDomainUsage |
返回目录中定义的列,这些列依赖于该目录中定义的域 |
DOMAIN_CATALOG DOMAIN_SCHEMA DOMAIN_NAME COLUMN_NAME |
13 |
AdSchemaColumnPrivileges |
返回目录中定义的表的列具有的特权 |
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME GRANTOR GRANTEE |
4 |
adSchemaColumns |
返回目录中定义的表(包括视图)的列 |
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME |
6 |
adSchemaConstraintColumnUsage |
返回目录中定义的列,这些列由引用约束、唯一约束、校验约束和断言使用 |
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME |
7 |
adSchemaConstraintTableUsage |
返回目录中定义的表,这些表由引用约束、唯一约束、校验约束和断言使用 |
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME |
27 |
adSchemaForeignKeys |
返回给定用户在目录中定义的外键列 |
PK_TABLE_CATALOG PK_TABLE_SCHEMA PK_TABLE_NAME FK_TABLE_CATALOG FK_TABLE_SCHEMA FK_TABLE_NAME |
12 |
adSchemaIndexes |
返回目录中定义的索引 |
TABLE_CATALOG TABLE_SCHEMA INDEX_NAME TYPE TABLE_NAME |
8 |
adSchemaKeyColumnUsage |
返回目录中定义的被约束成关键字的列 |
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME |
28 |
adSchemaPrimaryKeys |
返回给定用户在目录中定义的主键列 |
PK_TABLE_CATALOG PK_TABLE_SCHEMA PK_TABLE_NAME |
29 |
adSchemaProcedureColumns |
返回行集合中的列信息,该行集合由过程返回 |
PROCEDURE_CATALOG PROCEDURE_SCHEMA PROCEDURE_NAME COLUMN_NAME |
26 |
adSchemaProcedureParameters |
返回过程参数和返回代码的信息 |
PROCEDURE_CATALOG PROCEDURE_SCHEMA PROCEDURE_NAME PARAMTER_NAME |
16 |
adSchemaProcedures |
返回目录中定义的过程 |
PROCEDURE_CATALOG PROCEDURE_SCHEMA PROCEDURE_NAME PROCEDURE_TYPE |
-1 |
adSchemaProviderSpecific |
参见-1 | 参见说明 |
22 |
adSchemaProviderTypes |
参见22 |
DATA_TYPE BEST_MATCH |
9 |
adSchemaReferentialConstraints |
返回目录中定义的引用约束 |
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME |
17 |
adSchemaSchemata |
返回模式(数据库对象) |
CATALOG_NAME SCHEMA_NAME SCHEMA_OWNER |
18 |
adSchemaSQLLanguages |
返回目录中定义的SQL,实现数据(SQL implementation processing data)处理所支持的一致性级别、选项和方言 | <无> |
19 |
adSchemaStatistics |
返回目录中定义的统计 |
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME |
10 |
adSchemaTableConstraints |
返回目录中定义的表约束 |
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE |
14 |
adSchemaTablePrivileges |
返回目录中定义的表的列具有的特权 |
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME GRANTOR GRANTEE |
20 |
adSchemaTables |
返回目录中定义的可存取的表(包括视图) |
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE |
21 |
adSchemaTranslations |
返回目录中定义的可访问的字符转换 |
TRANSLATION_CATALOG TRANSLATION_SCHEMA TRANSLATION_NAME |
15 |
adSchemaUsagePrivileges |
返回目录中定义的对象的 Usage 特权 |
OBJECT_CATALOG OBJECT_SCHEMA OBJECT_NAME OBJECT_TYPE GRANTOR GRANTEE |
24 |
adSchemaViewColumnUsage |
返回目录中定义的相关列,在这些列上可查看表 |
VIEW_CATALOG VIEW_SCHEMA VIEW_NAME |
25 |
adSchemaViewTableUsage |
返回目录中定义的属于给定用户的相关表,在这些表上可查看表 |
VIEW_CATALOG VIEW_SCHEMA VIEW_NAME |
23 |
adSchemaViews |
返回目录中定义的可访问的视图 |
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME |
22 |
adSchemaProviderTypes |
返回数据提供者支 持的(基本)数据类型 | DATA_TYPEBEST_MATCH |
30 |
adSchemaDBInfoKeywords |
返回提供者特有的关键字的列表 | None |
31 |
adSchemaDBInfoLiterals |
返回文本命令中使用的文字的列表,这些文字是提供者特有的 | None |
32 |
adSchemaCubes |
返回模式中可用立方的相关信息(如果提供者不支持模式则为目录) |
CATALOG_NAME SCHEMA_NAME CUBE_NAME |
33 |
adSchemaDimensions |
返回给定立方中维的信息,每一维对应一行 |
CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSIONS_NAME DIMENSIONS_UNIQUE_NAME |
34 |
adSchemaHierarchies |
返回维中可用分级结构的信息 |
CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_UNIQUE_NAME HIERARCHY_NAME HIERARCHY_UNIQUE_NAME |
35 |
adSchemaLevels |
返回维中可用级别的信息 |
CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_UNIQUE_NAME HIERARCHY_UNIQUE_NAME LEVEL_NAME LEVEL_UNIQUE_NAME |
36 |
adSchemaMeasures |
返回可用度量的信息 |
CATALOG_NAME SCHEMA_NAME CUBE_NAME MEASURE_NAME MEASURE_UNIQUE_NAME |
37 |
adSchemaProperties |
为维的每一级别返回有关可用属性的信息 |
CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_UNIQUE_NAME HIERARCHY_UNIQUE_NAME LEVEL_UNIQUE_NAME MEMBER_UNIQUE_NAME PROPERTY_TYPE PROPERTY_NAME |
38 |
adSchemaMembers |
返回可用成员的信息。 |
CATALOG_NAME SCHEMA_NAME CUBE_NAM DIMENSION_UNIQUE_NAME HIERARCHY_UNIQUE_NAME LEVEL_UNIQUE_NAME LEVEL_NUMBER MEMBER_NAME MEMBER_UNIQUE_NAME MEMBER_CAPTION MEMBER_TYPE TREEOPERATOR |
39 |
adSchemaTrustees |
供日后使用 | None |
SchemaID
OLE DB 规范没有定义用于提供者模式查询的 GUID。如果
QueryType
设置为
adSchemaProviderSpecific
,则需要该参数,否则不使用它。
说明
OpenSchema
方法返回与数据源有关的信息,例如关于服务器上的表以及表中的列等信息。
Criteria
参数是可用于限制模式查询结果的值数组。每个模式查询有它支持的不同参数集。实际模式由
IDBSchemaRowset
接口下的 OLE DB 规范定义。ADO 中所支持的参数集已在上面列出。
如果提供者定义未在上面列出的非标准模式查询,则常量
adSchemaProviderSpecific
将用于
QueryType
参数。在使用该常量时需要
SchemaID
参数传递模式查询的 GUID 以用于执行。如果
QueryType
设置为
adSchemaProviderSpecific
但是没有提供
SchemaID
,将导致错误。
提供者不需要支持所有的 OLE DB 标准模式查询,只有
adSchemaTables
、
adSchemaColumns
和
adSchemaProviderTypes
是 OLE DB 规范需要的。但是对于这些模式查询,提供者不需要支持上面列出的
Criteria
条件约束。
远程数据服务用法
OpenSchema
方法在客户端
Connection
对象上无效。
注意
在 Visual Basic 中,在由
Connection
对象的
OpenSchema
方法所返回的
Recordset
中有 4 字节无符号整型 (DBTYPE UI4) 的列无法与其他变量比较。有关 OLE DB 数据类型的详细信息,请参阅“Microsoft OLE DB 程序员参考”的第十章和附录 A。