类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
在VB中如何判断程序所在的电脑有没有安装SQL SERVER?
网友回答:
用ADO连接。要是连不上那就是没装:D
顶一下
设置错误陷阱,和二楼一样,使用ADO连接,正常则正确执行,异常则转入错误处理
同意设置错误陷阱
On Error GoTo ErrHandler
Dim conOnlineBank As ADODB.Connection
Set conOnlineBank = New Connection
With conOnlineBank
.CommandTimeout = 5
.ConnectionString = "User ID=sa;Password=;data source =127.0.0.1;Initial Catalog=OnlineBanking"
.Provider = "SQLOLEDB"
.Open
End With
Exit Sub
ErrHandler:
If Err.Number = -2147467259 Then
MsgBox "SQL数据库不存在"
End If
连不上不等于没装
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Dim ServerName() As String
Dim Server As String
Dim I As Long
Dim j As Long
Public 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 Function
Private Sub Command1_Click()
Dim strString As String
strString = String(255, Chr$(0))
得到计算机名
GetComputerName strString, 255
strString = Left$(strString, InStr(1, strString, Chr$(0)) - 1)
Call SQLServerList(ServerName())
For I = 0 To UBound(ServerName)
If ServerName(I) = strString Or ServerName(I) = "(local)" Then MsgBox "有"
Exit Sub
Next
End Sub
我觉得还是判断注册表比较好,如果SQL SERVER服务没有启动,上面的代码是不行的
一般是看看注册表中是否有这项
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Setup
注册表比较好!
用winsock连接1433端口
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer
是啊,注册表