如何获得本地SQL SEVER 的数据库

如题,获得本地服务器的数据库名称,或者能获得局域网上的所有服务器名称,再获得其下的数据库,大侠伸手帮忙,感激不尽
[56 byte] By [kkhunter-小佛] at [2008-3-14]
# 1
Select * From Master..sysdatabases就是對應的實例中的所有數據庫了
# 2
Private Sub GetSqlServer()
Dim oSQLServerDMOApp As Object
Dim i As Integer
Dim namX As Object
On Error Resume Next
Set oSQLServerDMOApp = CreateObject("SQLDMO.Application")
Set namX = oSQLServerDMOApp.ListAvailableSQLServers
For i = 1 To namX.Count
cmbServer.AddItem namX.Item(i)
Next
cmbServer.ListIndex = 0

End Sub
# 3
请问 yanyao 还需要引用什么吗?
kkhunter-小佛 at 2007-10-20 > top of Msdn China Tech,visual basic,数据库(包含打印,安装,报表)...
# 5
添加Microsoft SQLDMO Object Library引用
读取所有服务器:
Set sqlApp = New Application
Set sqlNameList = sqlApp.ListAvailableSQLServers()
List.Clear
For intIndex = 1 To sqlNameList.Count - 1
List.AddItem sqlNameList.Item(intIndex)
Next intIndex
sqlApp.Quit
Set sqlApp = Nothing

读取所有数据库:
Set sqlServer = New sqlServer
sqlServer.Connect ServerName, UserName, Password

List.Clear
For intIndex = 1 To sqlServer.Databases.Count
List.AddItem sqlServer.Databases.Item(intIndex).Name
Next intIndex
sqlServer.Close
Set sqlServer = Nothing
GoldFox-金色狐狸 at 2007-10-20 > top of Msdn China Tech,visual basic,数据库(包含打印,安装,报表)...
# 6
Dim strSQL As String
Dim Rst As Adodb.Recordset
Dim strCnn As String
Dim i As Integer
Set Rst = New Adodb.Recordset
strSQL = "select * from sysdatabases"
strCnn = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=111117;Initial Catalog=master;Data Source=(local)"
Rst.Open strSQL, strCnn, adOpenDynamic, adLockReadOnly
For i = 1 To Rst.RecordCount
cboDB.AddItem Rst.Fields(0).Value
Next i
为什么我获得的RECORDCOUNT 是-1 ?
kkhunter-小佛 at 2007-10-20 > top of Msdn China Tech,visual basic,数据库(包含打印,安装,报表)...
# 7
为什么我读取服务器总失败?我用ADODC控件也是这样,枚举服务器总失败,我是在本机装的SQL SEVER服务器端和客户端,好像装的是开发版,谁能给解释下,谢啦
kkhunter-小佛 at 2007-10-20 > top of Msdn China Tech,visual basic,数据库(包含打印,安装,报表)...
# 8
还有人能帮我吗,没有就结贴了 :)
kkhunter-小佛 at 2007-10-20 > top of Msdn China Tech,visual basic,数据库(包含打印,安装,报表)...
# 9
yangao的是正解

visual basic Hot Topic