从提供程序获取数据库架构信息。
语法
Set recordset = connection.OpenSchema(QueryType, Criteria, SchemaID)
返回值
返回包含架构信息的 Recordset 对象。 Recordset 将作为只读静态游标打开。 QueryType 确定记录集中显示哪些列。
参数
QueryType
表示要运行的架构查询类型的任何 SchemaEnum 值。
条件
可选。 每个 QueryType 选项的查询约束数组,如 SchemaEnum 中所列。
SchemaID
OLE DB 规范未定义的提供程序架构查询的 GUID。 如果 QueryType 设置为 adSchemaProviderSpecific,则需要此参数;否则,不使用它。
注解
OpenSchema 方法返回有关数据源的自我描述性信息,例如数据源中的表、表中的列和支持的数据类型。
QueryType 参数是一个 GUID,指示返回的列(架构)。 OLE DB 规范包含架构的完整列表。
Criteria 参数限制架构查询的结果。 条件 指定在生成的 Recordset 中必须出现在列的相应子集(称为约束列)中的值数组。
如果提供程序在前面列出的架构查询之外定义自己的非标准架构查询,则常量 adSchemaProviderSpecific 用于 QueryType 参数。 使用此常量时,需要 SchemaID 参数才能传递要执行的架构查询的 GUID。 如果 QueryType 设置为 adSchemaProviderSpecific 但未提供 SchemaID ,则将导致错误。
提供程序不需要支持所有 OLE DB 标准架构查询。 具体而言,OLE DB 规范仅需要 adSchemaTables、adSchemaColumns 和 adSchemaProviderType。 但是,提供程序不需要支持前面为这些架构查询列出的 Criteria 约束。
注释
远程数据服务使用情况OpenSchema 方法在客户端 Connection 对象上不可用。
注释
在 Visual Basic 中,从 Connection 对象上的 OpenSchema 方法返回的 Recordset 中具有四字节无符号整数(DBTYPE UI4)的列不能与其他变量进行比较。 有关 OLE DB 数据类型的详细信息,请参阅 OLE DB(OLE DB)中的数据类型 和 附录 A: Microsoft OLE DB 程序员参考中的数据类型。
注释
Visual C/C++ 用户 如果不使用客户端游标,则在 ADO 中检索列架构的“ORDINAL_POSITION”会返回 MDAC 2.7、MDAC 2.8 和 Windows 数据访问组件(Windows DAC)6.0 中VT_R8类型的变体,而 MDAC 2.6 中使用的类型VT_I4。 为 MDAC 2.6 编写的程序,仅查找返回的类型为 VT_I4的变体,如果在 MDAC 2.7、MDAC 2.8 和 Windows DAC 6.0 下运行,则每个序号将得到零。 之所以进行此更改是因为 OLE DB 返回的数据类型DBTYPE_UI4,在已签名的VT_I4类型中,没有足够的空间来包含所有可能的值,而不会发生截断,从而导致数据丢失。
应用到
另请参阅
OpenSchema 方法示例 (VB)
OpenSchema 方法示例 (VC++)
Open 方法(ADO 连接)
Open 方法(ADO 记录)
Open 方法 (ADO Recordset)
Open 方法(ADO 流)
附录 A:供应商