怎么列举局域网上的SQL服务器名,再列出服务器中的所有数据库
谢谢
谢谢
解决方案 »
- 关于FORM的问题~
- 江湖告急:ADODC与COMBOBOX数据问题
- 请问用VBA如何取得WORD指定一个区域内的标题个数(特急)
- DateReport中怎么打印以下格式的報表啊
- 请问:在WIN98下是如何实现半透明的?多谢,急用!高分相送!!
- 兄弟们来啊!!!
- 有没有比:http://zyl910vb.51.net/vb/gui/DrawMenu-S.htm更简单的方法实现当鼠标放在菜单上面的时候,只加亮文本,而不使图标也反色?
- vb中读access数据库问题!急!
- 关于水晶报表9数据不能立即刷新的问题
- 有什么办法可以给 Label 控件加上句柄?
- 提问:如何写一个程序以便于可以给其他得程序中得comboBox中添加条目?
- 求邮件编码中文转换算法VB实现
Dim ServerName() As String
Dim DataName() As String
Dim Server As String
Dim I As Long
Dim j As LongPublic Function SQLServerList(ByRef strServerName() As String, _
Optional ByRef rlngErrNum As Long, _
Optional ByRef rstrErrDescr As String) As Boolean
Dim objServerApp As SQLDMO.Application
Dim objServers As SQLDMO.NameList
Dim lngServerCount As Long
On Error GoTo SQLServerListErr
SQLServerList = False
Set objServerApp = New SQLDMO.Application
Set objServers = objServerApp.ListAvailableSQLServers
lngServerCount = objServers.Count
ReDim strServerName(lngServerCount - 1)
For I = 1 To lngServerCount
strServerName(I - 1) = objServers.Item(I)
Next I
SQLServerList = True
Err.Clear
SQLServerListErr:
Set objServers = Nothing
Set objServerApp = Nothing
rlngErrNum = Err.Number
rstrErrDescr = Err.Description
End FunctionPublic 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
On Error GoTo SQLDatabaseListErr
SQLDatabaseList = False
Set objServer = New SQLDMO.SQLServer
objServer.Connect "lch", 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.DescriptionEnd Function
Private Sub Command1_Click()
Call SQLServerList(ServerName())
For I = 0 To UBound(ServerName)
Text1 = Text1 & ServerName(I) & vbCrLfCall SQLDatabaseList(ServerName(I), DataName())
For j = 0 To UBound(DataName)
Text2 = Text2 & DataName(j) & vbCrLf
Next
NextEnd SubPrivate Sub Form_Load()End Sub