VB自动加载局域网服务器,VB爱好者乐园(VBGood)

原帖由 hufeieagle 于 2007-7-25 16:50 发表

如何获取局域网中SQL数据库服务器和及它的数据库列表

Private BlnServersList As Boolean

Dim ztmc  As String

Private sysUserName As String

Private sysUserPassWord As String

Private sysServer As String

Private sysDBName As String

Private sysOption As String

Private sysConnStr As String

'初始化环境

Private Sub InitEnvi()

BlnServersList = False

Me.Option2.Value = True

Me.Text1(0).Text = "sa"

End Sub

'浏览某个数据库服务器(Server)的数据库如果浏览成功返回真值

Private Function ListDBServers(Server As String, UserName As String, Password As String, LoginOption As String, ErrDesc As String) As Boolean

On Error GoTo Err

Dim Conn As New ADODB.Connection

Dim Connstr As String

Dim DBLists As New ADODB.Recordset

Dim I As Integer, n As Integer

If LoginOption = 0 Then '集成身份验证

Connstr = &quot

ff5955c4646d387fb80a9fbc34df7018.gifrovider=SQLOLEDB.1;Integrated Security=SSPI

ff5955c4646d387fb80a9fbc34df7018.gifersist Security Info=False;Initial Catalog='master';Data Source='" & Server & "'"

Else                    '用户名和密码验证

Connstr = &quot

ff5955c4646d387fb80a9fbc34df7018.gifrovider=SQLOLEDB.1;Persist Security Info=False;User ID=" & UserName & ";Password=" & Password & ";Initial Catalog='master';Data Source='" & Server & "'"

End If

Conn.ConnectionTimeout = 15

Conn.Open Connstr

DBLists.Open "select name from sysdatabases", Conn, adOpenStatic, adLockReadOnly, adCmdText

Combo1(1).Clear

n = DBLists.RecordCount

For I = 1 To n

Combo1(1).AddItem DBLists.Fields(0).Value

DBLists.MoveNext

Next

Set objNameList = Nothing

Set objApp = Nothing

ListDBServers = True

Exit Function

Err:

ErrDesc = Err.Description

ListDBServers = False

End Function

Private Sub Command1_Click(Index As Integer)

Dim ErrDesc As String

Select Case Index

Case 0 '刷新

Case 1 '确定

If Me.Combo1(1).Text = "" Then MsgBox "请选择数据库!", 48: Exit Sub

If Not TestConn(ErrDesc) Then MsgBox "连接错误,请重新设置参数!", 48: Exit Sub

If sysOption = 0 Then

sysConnStr = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog='" & sysDBName & "';Data Source='" & sysServer & "'"

ElseIf sysOption = 1 Then

sysConnStr = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" & sysUserName & ";Password=" & sysUserPassWord & ";Initial Catalog='" & sysDBName & "';Data Source='" & sysServer & "'"

End If

SaveSettings

strconn = sysConnStr

Unload Me

Set sCn = New ADODB.Connection

sCn.Open strconn

frmSplash.Show 1

Case 2 '取消

End

Case 3 '测试连接

Me.MousePointer = vbHourglass

If Not TestConn(ErrDesc) Then

MsgBox "测试连接失败。" & vbCrLf & "详细资料:" & ErrDesc, vbExclamation, App.Title

Else

MsgBox "测试连接成功。", vbInformation, App.Title

End If

Me.MousePointer = vbDefault

Case 4   '保存

End Select

Exit Sub

err1:

MsgBox Error

End Sub

Private Sub Form_Load()

InitEnvi

GetSettings

End Sub

'测试数据库连接

Private Function TestConn(ErrDesc As String) As Boolean

Dim CnnTemp As New ADODB.Connection

On Error GoTo Err

SetsysValues

CnnTemp.ConnectionTimeout = 15

If sysOption = 0 Then

CnnTemp.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog='" & sysDBName & "';Data Source='" & sysServer & "'"

ElseIf sysOption = 1 Then

CnnTemp.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" & sysUserName & ";Password=" & sysUserPassWord & ";Initial Catalog='" & sysDBName & "';Data Source='" & sysServer & "'"

End If

TestConn = True

Exit Function

Err:

ErrDesc = Err.Description

TestConn = False

End Function

'保存数据连接属性

Private Sub SaveSettings()

SaveSetting App.EXEName, "Conn" & Me.Tag, "ConnString", sysConnStr

SaveSetting App.EXEName, "Conn" & Me.Tag, "sysUserName", sysUserName

SaveSetting App.EXEName, "Conn" & Me.Tag, "sysUserPassWord", sysUserPassWord

SaveSetting App.EXEName, "Conn" & Me.Tag, "sysServer", sysServer

SaveSetting App.EXEName, "Conn" & Me.Tag, "sysDBName", sysDBName

SaveSetting App.EXEName, "Conn" & Me.Tag, "sysOption", sysOption

End Sub

Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)

End Sub

Private Sub Option1_Click()

Me.Text1(0).Enabled = False

Me.Text1(1).Enabled = False

End Sub

Private Sub Option2_Click()

Me.Text1(0).Enabled = True

Me.Text1(1).Enabled = True

End Sub

Private Sub SetsysValues()

If Me.Option1.Value = True Then            '集成验证

sysServer = Me.Combo1(0).Text

sysDBName = Me.Combo1(1).Text

sysOption = 0

ElseIf Me.Option2.Value = True Then        '用户验证

sysUserName = Me.Text1(0).Text

sysUserPassWord = Me.Text1(1).Text

sysServer = Me.Combo1(0).Text

sysDBName = Me.Combo1(1).Text

sysOption = 1

End If

End Sub

Private Sub GetSettings()

On Error Resume Next

Me.Combo1(0).Text = GetSetting(App.EXEName, "Conn", "sysServer", "")

'  Me.Combo1(1).Text = GetSetting(App.EXEName, "Conn", "sysDBName", "")

If GetSetting(App.EXEName, "Conn", "sysOption", "") = 0 Then

Me.Option1.Value = False

ElseIf GetSetting(App.EXEName, "Conn", "sysOption", "") = 1 Then

Me.Option2.Value = True

Me.Text1(0).Text = GetSetting(App.EXEName, "Conn", "sysUserName", "")

Me.Text1(1).Text = GetSetting(App.EXEName, "Conn", "sysUserPassWord", "")

End If

End Sub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值