概要
OpenSchema 的語法是下面:
更多信息
- 指定的所需的架構類型的枚舉的值。 示例包括 adSchemaTables、 adSchemaPrimaryKeys、 adSchemaColumns。
- 一個 Variant 數組。 元素和此陣列中的內容的數量取決於要運行架構查詢的類型。 可以使用此參數來限制在結果集中返回的行數。 但是,您不能限制您返回使用 OpenSchema 的列數。 條件陣列成員表示該字符串值來限制查詢結果。 陣列成員數在 querytype 而異。
- 第三個參數因您使用提供程序而異。 它只有當時才需要將第一個參數設置爲 adSchemaProviderSpecific ; 否則,它不使用。
QueryType Criteria ============================= adSchemaTables TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE
Microsoft Access 97 和 Access 2000
若要列出所有表和 Microsoft Access NWind 數據庫中的查詢,只是使用以下代碼:
Set rs = cn.OpenSchema(adSchemaTables)
While Not rs.EOF
Debug.Print rs!TABLE_NAME
rs.MoveNext
Wend
Set rs = cn.OpenSchema(adSchemaTables, _
Array(Empty, Empty, Empty, "Table")
Microsoft SQL Server 6.5 和 7.0
要列出的所有表和 Microsoft SQL Server Pubs 數據庫中的視圖,使用:
Set rs = cn.OpenSchema(adSchemaTables)
Set rs = cn.OpenSchema(adSchemaTables, _
Array("Pubs", Empty, Empty, "Table")
QueryType Criteria =============================== adSchemaColumns TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME
Microsoft Access 97 和 Access 2000
到與 adSchemaColumns,只使用數據庫的 Access Nwind 中 Employees 表中的該字段的列表:
Set rs = cn.OpenSchema(adSchemaColumns,Array(Empty, Empty, "Employees")
While Not rs.EOF
Debug.Print rs!COLUMN_NAME
rs.MoveNext
Wend
Microsoft SQL Server 6.5 和 7.0
到與 adSchemaColumns,只使用數據庫的 SQL Server Pubs 中 Authors (作者) 表中的該字段的列表:
Set rs = cn.OpenSchema(adSchemaColumns, Array("pubs", "dbo", "Authors")
QueryType Criteria ================================ adSchemaIndexes TABLE_CATALOG TABLE_SCHEMA INDEX_NAME TYPE TABLE_NAME
Microsoft Access 97 和 Access 2000
到與 adSchemaIndexes,只使用數據庫的 Access Nwind 中 Employees 表中的索引的列表:
Set rs = cn.OpenSchema(adSchemaIndexes, _
Array(Empty, Empty, Empty, Empty, "Employees")
While Not rs.EOF
Debug.Print rs!INDEX_NAME
rs.MoveNext
Wend
Microsoft SQL Server 6.5 和 7.0
到 SQL Server Pubs 中的 Authors 表中的索引數據庫與 adSchemaIndexes,只需使用的列表:
Set rs = cn.OpenSchema(adSchemaIndexes, _
Array("Pubs", "dbo", Empty, Empty, "Authors")
OpenSchema 方法示例
在 Visual Basic (VB) 中選擇一個標準 EXE 項目。 將三個命令按鈕添加到 EXE 項目。 在 項目 菜單上選擇 引用 。 在引用對話框中選擇 Microsoft ActiveX 對象 Library 。 此示例使用 Pubs 數據庫附帶 SQL Server。 您需要將數據源名稱 (DSN) 更改爲您的計算機上的 DSN。 將以下代碼粘貼到項目的通用聲明部分:請注意 您要更改 UID = <username> 和 PWD = < 強密碼 > 正確的值在運行此代碼之前。 請確保 UID 具有適當的權限在數據庫上執行此操作。
'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, Array("pubs", "dbo", _
"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, Array("pubs", "dbo", _
"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
參考