请问: 对SQL SERVER ,知道机器名、用户名、密码,如何得知数据库名称列表.
请问:对SQL SERVER ,知道机器名、用户名、密码,如何得知数据库名称列表。
Public Function SQLDatabaseList(ByVal vstrServer As String, _
strDatabase() As String, _
Optional ByVal vstrUser As String = "sa", _
Optional ByVal vstrPassWord As String = "", _
Optional rlngErrNum As Long, Optional rstrErrDescr As String) As Boolean
Dim objServer As SQLDMO.SQLServer
Dim lngDatabaseCount As Long
Dim i As Long
On Error GoTo SQLDatabaseListErr
SQLDatabaseList = False
Set objServer = New SQLDMO.SQLServer
objServer.Connect vstrServer, vstrUser, vstrPassWord
lngDatabaseCount = objServer.Databases.Count
ReDim strDatabase(lngDatabaseCount - 1)
For i = 1 To lngDatabaseCount
strDatabase(i - 1) = objServer.Databases.Item(i, "dbo").Name
Next i
SQLDatabaseList = True
Err.Clear
SQLDatabaseListErr:
Set objServer = Nothing
rlngErrNum = Err.Number
rstrErrDescr = Err.Description
End Function
請:引用Microsoft SQLDMO Object Library
1.有两种方法可以实现,一种是利用sql中本身存储的数据库列表
select * from master.dbo.sysdatabases
可以列出所有的数据库列表
2.利用sqldmo对象
先引用sqldmo对象
'引用microsoft SQLDMO对象
'定义数据库服务器
Dim Osql As New SQLDMO.SQLServer
'定义一个数据库对象
Dim Odb As New SQLDMO.Database
'循环得到数据库的名称
For Each Odb In Osql.Databases
Dim s As String
s = Odb.Name
Next
'释放对象
Set Odb = Nothing
Osql.Close
Set Osql = Nothing