MSDN:OpenSchema 方法 (ADO)

VB备忘录(21)ADO实例 一、增加数据记录:        rs.AddNew   '增加一个新行(记录)        rs.fields(0)=...      '各个字段赋值       ......        rs.Update            '更新到数据库      1、增加字符型或数值型。            字符型前加Str,数据型加Val,这样转型是为了和数据库匹配。 阅读详情

从提供者获取数据库纲要信息。

语法

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

返回值

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

参数

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

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

QueryTypeCriteria
adSchemaAssertsCONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
adSchemaCatalogsCATALOG_NAME
adSchemaCharacterSetsCHARACTER_SET_CATALOG
CHARACTER_SET_SCHEMA
CHARACTER_SET_NAME
adSchemaCheckConstraintsCONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
adSchemaCollationsCOLLATION_CATALOG
COLLATION_SCHEMA
COLLATION_NAME
adSchemaColumnDomainUsageDOMAIN_CATALOG
DOMAIN_SCHEMA
DOMAIN_NAME
COLUMN_NAME
adSchemaColumnPrivilegesTABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAME
GRANTOR
GRANTEE
adSchemaColumnsTABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAME
adSchemaConstraintColumnUsageTABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAME
adSchemaConstraintTableUsageTABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
adSchemaForeignKeysPK_TABLE_CATALOG
PK_TABLE_SCHEMA
PK_TABLE_NAME
FK_TABLE_CATALOG
FK_TABLE_SCHEMA
FK_TABLE_NAME
adSchemaIndexesTABLE_CATALOG
TABLE_SCHEMA
INDEX_NAME
TYPE
TABLE_NAME
adSchemaKeyColumnUsageCONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAME
adSchemaPrimaryKeysPK_TABLE_CATALOG
PK_TABLE_SCHEMA
PK_TABLE_NAME
adSchemaProcedureColumnsPROCEDURE_CATALOG
PROCEDURE_SCHEMA
PROCEDURE_NAME
COLUMN_NAME
adSchemaProcedureParametersPROCEDURE_CATALOG
PROCEDURE_SCHEMA
PROCEDURE_NAME
PARAMTER_NAME
adSchemaProceduresPROCEDURE_CATALOG
PROCEDURE_SCHEMA
PROCEDURE_NAME
PARAMTER_TYPE
adSchemaProviderSpecific参见说明
adSchemaProviderTypesDATA_TYPE
BEST_MATCH
adSchemaReferentialConstraintsCONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
adSchemaSchemataCATALOG_NAME
SCHEMA_NAME
SCHEMA_OWNER
adSchemaSQLLanguages<无>
adSchemaStatisticsTABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
adSchemaTableConstraintsCONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
CONSTRAINT_TYPE
adSchemaTablePrivilegesTABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
GRANTOR
GRANTEE
adSchemaTablesTABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
TABLE_TYPE
adSchemaTranslationsTRANSLATION_CATALOG
TRANSLATION_SCHEMA
TRANSLATION_NAME
adSchemaUsagePrivilegesOBJECT_CATALOG
OBJECT_SCHEMA
OBJECT_NAME
OBJECT_TYPE
GRANTOR
GRANTEE
adSchemaViewColumnUsageVIEW_CATALOG
VIEW_SCHEMA
VIEW_NAME
adSchemaViewTableUsageVIEW_CATALOG
VIEW_SCHEMA
VIEW_NAME
adSchemaViewsTABLE_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 条件约束。

Remote Data Service 用法   OpenSchema 方法在客户端 Connection 对象上无效。

 

 

=========================

Public Sub OpenSchemaX()

   Dim cnn1 As ADODB.Connection
   Dim rstSchema As ADODB.Recordset
   Dim strCnn As String
      
   Set cnn1 = New ADODB.Connection
      strCnn = "Provider=sqloledb;" & _
      "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
   cnn1.Open strCnn
      
   Set rstSchema = cnn1.OpenSchema(adSchemaTables)
   
   Do Until rstSchema.EOF
      Debug.Print "Table name: " & _
         rstSchema!TABLE_NAME & vbCr & _
         "Table type: " & rstSchema!TABLE_TYPE & vbCr
      rstSchema.MoveNext
   Loop
   rstSchema.Close
   
   cnn1.Close
   
End Sub

该范例在 OpenSchema 方法的 Criteria 参数中指定 TABLE_TYPE 查询约束。因此,只返回在 Pubs 数据库中指定的 Views 的纲要信息。然后该范例显示这些表的名称和类型。

Public Sub OpenSchemaX2()

   Dim cnn2 As ADODB.Connection
   Dim rstSchema As ADODB.Recordset
   Dim strCnn As String
      
   Set cnn2 = New ADODB.Connection
      strCnn = "Provider=sqloledb;" & _
      "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
   cnn2.Open strCnn
      
   Set rstSchema = cnn2.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "VIEW"))

      Do Until rstSchema.EOF
         Debug.Print "Table name: " & _
            rstSchema!TABLE_NAME & vbCr & _
            "Table type: " & rstSchema!TABLE_TYPE & vbCr
         rstSchema.MoveNext
      Loop
   rstSchema.Close
   
   cnn2.Close
   
End Sub
ADOOpenSchema   Dim oConn,oRS,sConn  Const adUseClient = 3  Const adSchemaTables = 20  Set oConn = Server.CreateObject("ADODB.Connection")  sConn = "DBQ="+server.mappath("chinawuyishan.mdb")+";DRIVER={Microsoft 阅读详情

相关推荐

ADO OpenSchema 方法

ADO OpenSchema 方法 The OpenSchema method returns a Recordset object with schema information from the provider about the data source. For example, schema information can include the names o

fivedoumi的专栏 1817

ado excel读取

_ConnectionPtr pConnection; _RecordsetPtr pRecordset; CString tableName; pConnection.CreateInstance("ADODB.Connection");//两种初始化只能ADO只能指针的方式 pRecordset.CreateInstance (__uuidof(Recordset)); CStrin

forwin的专栏 658

数据库结构操作

1、名的获取方法OpenSchema   注意,网上一般提供的语句为: Setrecordset = connection.OpenSchema (adSchemaTables)不要忘了在前面加上adSchemaTables的定义:   ConstadSchemaTables = 20 最终的语句为:不要忘了在前面加上adSchemaTables

余璜的技术博客 1156

VC开发数据库基础之ADO

VC开发数据库基础之ADO篇  VC开发数据库基础之ADO篇    一、ADO简介 ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,请不必为此担心,即使你对OLE DB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBC API、DAO、RDO都要容易

chaoyuan899的专栏 2790

ADO实现Access数据库的遍历和字段的遍历(VC版)

网络上鲜有VC版的相关代码,今日学习了VC利用ADO操纵数据库部分。查了一下MSDN写了以下代: 遍历用户的代码: CoInitialize(NULL);_ConnectionPtr pconn(__uuidof(Connection));_RecordsetPtr prs(__uuidof(Recordset)); pconn->ConnectionStrin...

dongbang3606的博客 353

如何调用[建立ADO连接字符串对话框]?

我们做数据库应用程序时,经常需要动态建立数据库连接,您知道怎么做吗? 下面的代码会给你提供一些帮助,效果如图 01.HRESULT hr; 02.IDataSourceLocatorPtr dlPrompt=NULL; 03._RecordsetPtr rs=NULL; 04.try 05.{ 06.// 初始化DataLink

imxiangzi的专栏 812

ADODB.Connection、ADODB.RecordSet

1.数据库连接对象(ADODB. Connection) 该对象用于与ODBC数据库建立连接,所有对数据库的操作均通过该连接进行。 数据库连接对象ADODB. Connection的作用象Delphi中的TDatabase对象。 建立一个连接对象的方法(AConnection为Variant类型变量): AConnection:=CreateOleObject(’A DODB.Con

Celestial Being 2413

vb获取数据库中所有的名称

如何在 Visual Basic 中使用 ADO OpenSchema 方法 文章编号: 186246 - 查看本文应用于的产品 查看机器翻译免责声明 点击这里查看逐句中英文对照机器翻译 309488" _msthash="451464" _mstchunk="true">这篇文章的 Microsoft Visual Basic.NET 版本,请参阅309488 () http:

gyzsky的专栏 4708

ADO.Net的对象模型

ADO.Net的对象模型,包括以下七个对象。Connection.Command,Parameter,Recordset,Field,Property,Error.此外,还包括四个集合,Fields,Properties,Parameters,Errors.这几个对象的功能如下:Connection对象提供与包含路径,口令和连接选项的数据源的链接;Command对象保存一个针对数据源的将被

smallwolves 1795

hbase获取信息_Excel VBA+ADO+SQL入门教程023:OpenSchema获取信息

点上方关注我们,每日1练,每天进步一点点1.我们在使用SQL语言对数据库数据进行查询之前,有时需要获取每张名,甚至获取每张每个字段的名称等;比如,当我们进行跨工作簿数据查询及汇总时,在不打开相关工作簿的情况下,如何快速遍历指定工作簿每个工作的名称?——Connection对象的OpenSchema方法可以帮助我们解决此类问题;它可以从提供者获取数据库模式的信息,并返回一个只读...

weixin_31558841的博客 671

OpenSchema 方法

OpenSchema 方法 从提供者获取数据库模式信息。 语法 Set recordset = connection.OpenSchema (QueryType, Criteria, SchemaID) 返回值 返回包含模式信息的 Recordset 对象。Recordset 将以只读、静态游标打开。 参数 QueryType   所要运行的模式查询类型,可以为下列任意常量。 C

quxiantao的专栏 2288

获取Access数据方法

获取数据方法方法一:直接用adoOpenSchema()方法打开adSchemaTables,建立一个schema记录集 Const adSchemaTables = 20 adSchemaColumns = 4 dim Conn,db dim ConnStr db="temp.mdb" 'ACCESS数据库的文件名,请使用相对于网站根目录的的绝对路径 ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPat

旺财 1358

VBA-判断数据是否存在(openschema

1.首先我们可以学习一下错误捕捉,当数据不存在的时候,删除数据就会出现错误,此时就会有错误记录,我们就可以利用本地窗口看到错误的信息 Sub 错误捕捉() Dim mydata As String Dim mytable As String Dim con As New ADODB.Connection mydata = ThisWorkbook.Path ...

oyq的博客 5040

查询用户所有信息后只需要两个字段的信息_Excel VBA+ADO+SQL入门教程023:OpenSchema获取信息...

点上方关注我们,每日1练,每天进步一点点1.我们在使用SQL语言对数据库数据进行查询之前,有时需要获取每张名,甚至获取每张每个字段的名称等;比如,当我们进行跨工作簿数据查询及汇总时,在不打开相关工作簿的情况下,如何快速遍历指定工作簿每个工作的名称?——Connection对象的OpenSchema方法可以帮助我们解决此类问题;它可以从提供者获取数据库模式的信息,并返回一个只读...

weixin_39958366的博客 480

OpenSchema 方法详解

OpenSchema 方法从提供者获取数据库模式信息。语法Set recordset = connection.OpenSchema (QueryType, Criteria, SchemaID)返回值返回包含模式信息的 Recordset 对象。Recordset 将以只读、静态游标打开。参数QueryType   所要运行的模式查询类型,可以为下列任意常量。Criteria   可选。每个 Q

Aricc的专栏 3980
上一篇: VfpOledb 打开视图
下一篇: (转)如何使用ADOX/DAO刷新/更新/删除并重定义链接表
早起旺财
博客等级 码龄24年 6粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值