2014-02-17 32 views
1

我正在使用ADOX檢索表名,但未列出DBO以外架構內的任何表。ADOX - 未列出SQL Server架構中的表

Sub ListTablesADOX() 
    Dim Conn As New ADODB.Connection 

    'Open connection you want To get database objects 
    Conn.Provider = "MSDASQL" 
    Conn.Open "DSN=...;Database=...;", "UID", "PWD" 

    'Create catalog object 
    Dim Catalog As New ADOX.Catalog 
    Set Catalog.ActiveConnection = Conn 

    'List tables And columns 
    Dim Table As ADOX.Table 
    For Each Table In Catalog.Tables 
     Debug.Print Table.Name 
    Next 
End Sub 
+0

請嘗試使用'Conn.Open(「Provider = SQLNCLI10.1; Data Source = ; Integrated Security = SSPI; Initial Catalog = 」)'連接。 (或使用除SQLNCLI10.1之外的其他提供者)。也許這是特定於提供者的問題?或者它的行爲與SSPI有所不同...... –

+0

謝謝,但似乎無論如何連接,只會列出默認(dbo)模式中的對象。你能看到其他模式中的對象嗎? –

+0

是的,使用上面的方法,它列出了我在Management Studio中看到的所有模式。 –

回答

1

我放棄使用ADOX,重新編碼使用ADO的OpenSchema方法,而不是,我不能讓ADOX超出dbo架構事情都是我獲取目錄信息的程序。