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

前端之家收集整理的这篇文章主要介绍了vb获取数据库中所有表的名称前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如何在 Visual Basic 中使用 ADO OpenSchema 方法

文章编号: 186246 - 查看本文应用于的产品
309488" _msthash="451464" _mstchunk="true">这篇文章的 Microsoft Visual Basic.NET 版本,请参阅309488@H_502_11@ 。@H_502_11@

概要@H_502_11@

本文介绍了如何使用 ActiveX 数据对象 (ADO) 连接对象的 OpenSchema 方法获取有关数据库或表的详细信息。@H_502_11@

下面是 OpenSchema 的语法:@H_502_11@
设置记录集 = 连接。@H_502_11@ OpenSchema (QueryType,条件 SchemaID)@H_502_11@

更多信息@H_502_11@

以下是 OpenSchema 方法的三个参数:@H_502_11@
  • 一个枚举的值,指定所需的架构类型。@H_502_11@示例包括 adSchemaTables、 adSchemaPrimaryKeys、 adSchemaColumns。@H_502_11@
  • 一个 variant 类型的值的数组。@H_502_11@元素和该数组中的内容数量取决于运行架构查询的类型。@H_502_11@您可以使用此参数来限制返回的结果集中的行数。@H_502_11@但是,不能限制使用 OpenSchema 返回的列数。@H_502_11@条件数组成员表示的字符串值来限制查询结果。@H_502_11@阵列成员数而异的 querytype。@H_502_11@
  • 第三个参数会有所不同,具体取决于您使用的提供程序。@H_502_11@它是必需的只有当您将第一个参数设置为 adSchemaProviderSpecific。@H_502_11@否则,它将不使用。@H_502_11@
下面是示例参数为 OpenSchema。@H_502_11@注意使用 querytype 将更改条件。@H_502_11@需要记住的最重要的一点是提供的值的顺序必须是相同的。@H_502_11@其他 querytypes 的相应条件的列表是在联机文档位于下面的 URL:@H_502_11@@H_502_11@
http://msdn2.microsoft.com/en-us/library/ms805098.aspx
   QueryType        Criteria
   =============================

   adSchemaTables   TABLE_CATALOG
                    TABLE_SCHEMA
                    TABLE_NAME
                    TABLE_TYPE
				
使用 adSchemaTables 来列出数据库中的表。@H_502_11@

Microsoft Access 97 和 Access 2000

若要列出的表和查询,Microsoft Access NWind 数据库中的所有操作,只需使用下面的代码:@H_502_11@
Set rs = cn.OpenSchema(adSchemaTables)
   While Not rs.EOF
      Debug.Print rs!TABLE_NAME
      rs.MoveNext
   Wend
				
若要列出仅访问 Nwind 数据库中的表,请使用:@H_502_11@
Set rs = cn.OpenSchema(adSchemaTables,_
         Array(Empty,Empty,"Table")
				
使用相同的语法,使用 Jet ODBC 驱动程序与 ODBC OLE DB 提供程序和使用 Jet OLE DB 提供程序。@H_502_11@

Microsoft sql Server 6.5 和 7.0

若要列出的所有表和 Microsoft sql Server Pubs 数据库中的视图,请使用:@H_502_11@
Set rs = cn.OpenSchema(adSchemaTables)
				
若要列出只是 Microsoft sql Server Pubs 数据库中的表,请使用:@H_502_11@
Set rs = cn.OpenSchema(adSchemaTables,_
         Array("Pubs","Table")
				
使用相同的语法与 sql Server ODBC 驱动程序使用 ODBC OLE DB 提供程序和对 sql Server 使用 OLE DB 提供程序。@H_502_11@
   QueryType         Criteria
   ===============================

   adSchemaColumns   TABLE_CATALOG
                     TABLE_SCHEMA
                     TABLE_NAME
                     COLUMN_NAME
				
使用 adSchemaColumns,可以列出表中的字段。@H_502_11@

Microsoft Access 97 和 Access 2000

若要列出访问 Nwind adSchemaColumns 与数据库中雇员表中的字段,只需使用:@H_502_11@
Set rs = cn.OpenSchema(adSchemaColumns,Array(Empty,"Employees")

While Not rs.EOF
   Debug.Print rs!COLUMN_NAME
   rs.MoveNext
Wend
				
此操作使用 Jet ODBC 驱动程序与 ODBC OLE DB 提供程序,并且与 Jet OLE DB 提供程序一起使用。@H_502_11@

Microsoft sql Server 6.5 和 7.0

若要列出在 sql Server Pubs 数据库中以 adSchemaColumns 作者表中的字段,只需使用:@H_502_11@
Set rs = cn.OpenSchema(adSchemaColumns,Array("pubs","dbo","Authors")
				
请注意 TABLE_CATALOG 数据库,TABLE_SCHEMA 是表的所有者。@H_502_11@此操作的 sql Server ODBC 驱动程序与 ODBC 使用 OLE DB 提供程序和 sql Server 使用 OLE DB 提供程序。@H_502_11@@H_502_11@
   QueryType          Criteria
   ================================

   adSchemaIndexes    TABLE_CATALOG
                      TABLE_SCHEMA
                      INDEX_NAME
                      TYPE
                      TABLE_NAME
				
提供了在 adSchemaIndexes querytype 的索引名称。@H_502_11@

Microsoft Access 97 和 Access 2000

若要列出访问 Nwind adSchemaIndexes 与数据库中雇员表中的索引,只需使用:@H_502_11@
Set rs = cn.OpenSchema(adSchemaIndexes,"Employees")

While Not rs.EOF
   Debug.Print rs!INDEX_NAME
   rs.MoveNext
Wend
				
此操作使用 Jet ODBC 驱动程序与 ODBC OLE DB 提供程序,并且与 Jet OLE DB 提供程序一起使用。@H_502_11@

Microsoft sql Server 6.5 和 7.0

若要列出在 sql Server Pubs 数据库中以 adSchemaIndexes 作者表中的索引,只需使用:@H_502_11@
Set rs = cn.OpenSchema(adSchemaIndexes,"Authors")
				
此操作的 sql Server ODBC 驱动程序与 ODBC 使用 OLE DB 提供程序和 sql Server 使用 OLE DB 提供程序。@H_502_11@下面的步骤演示 OpenSchema 方法。@H_502_11@@H_502_11@

OpenSchema 方法示例

项目 菜单中选择 引用。在引用对话框中选择 Microsoft ActiveX 对象库。此示例使用与 sql Server 一起提供的 Pubs 数据库。您需要将数据源名称 (DSN) 更改为您的计算机上的 DSN。将以下代码粘贴到的项目的常规声明节中:" _msthash="21495" _mstchunk="true">在 Visual Basic (VB),请选择标准 EXE 项目。@H_502_11@EXE 项目中添加三个命令按钮。@H_502_11@Project menu,choose References. " _msthash="64485" _mstchunk="true">从项目菜单中,选择引用。@H_502_11@Microsoft ActiveX Objects Library. " _msthash="85980" _mstchunk="true">在引用对话框中,选择Microsoft ActiveX 对象库。@H_502_11@此示例使用与 sql Server 提供的 Pubs 数据库。@H_502_11@您需要将数据源名称 (DSN) 更改为在您的计算机上的 DSN。@H_502_11@将下面的代码粘贴到该项目的通用声明部分:@H_502_11@@H_502_11@

<SPAN ? _mstsrchtml=" 注意您需要更改 UID = &lt;username&gt;和 PWD = &lt; 强密码 &gt; 到正确的值,在运行此代码之前。请确保 UID 具有适当的权限在数据库上执行此操作。" _msthash="21496" _mstchunk="true"> Note " _msthash="21496" _mstchunk="true">注意@H_502_11@ 您将需要更改 UID = <username> 和 PWD = < 强密码 > 为正确的值,您在运行此代码之前。@H_502_11@ 请确保该 UID 具有对数据库执行此操作的相应权限。@H_502_11@
   'Open the proper connection.
   Dim cn As New ADODB.Connection
   Dim rs As New ADODB.Recordset

   Private Sub Command1_Click()
   'Getting the information about the columns in a particular table.
      Set rs = cn.OpenSchema(adSchemaColumns,_
             "authors"))
      While Not rs.EOF
          Debug.Print rs!COLUMN_NAME
          rs.MoveNext
      Wend

   End Sub

   Private Sub Command2_Click()
   'Getting the information about the primary key for a table.
      Set rs = cn.OpenSchema(adSchemaPrimaryKeys,_
             "authors"))
      MsgBox rs!COLUMN_NAME
   End Sub

   Private Sub Command3_Click()
   'Getting the information about all the tables.
      Dim criteria(3) As Variant
      criteria(0) = "pubs"
      criteria(1) = Empty
      criteria(2) = Empty
      criteria(3) = "table"
      Set rs = cn.OpenSchema(adSchemaTables,criteria)
      While Not rs.EOF
         Debug.Print rs!TABLE_NAME

         rs.MoveNext
      Wend

   End Sub

   Private Sub Form_Load()
      cn.Open "dsn=pubs;uid=<username>;pwd=<strong password>;"
      'To test with the Native Provider for sql Server,comment the
      ' line above then uncomment the following line. Modify to use
      ' your server.
      'cn.Open "Provider=sqlOLEDB;Data Source=<servername>;" & _
      '        "User ID=sa;password=;"

   End Sub
				
运行。@H_502_11@单击要测试的每个命令按钮。@H_502_11@End.Modify 为 sql Server 使用本机的提供程序的窗体加载事件过程。@H_502_11@再次测试。@H_502_11@ADO 文档有 querytype 和条件的详细信息。@H_502_11@指定 OLE DB 中的架构信息基于假定该提供程序支持的目录和架构的概念。@H_502_11@@H_502_11@

猜你在找的VB相关文章