1,216
社区成员
发帖
与我相关
我的任务
分享
Public Sub ConnectionStringX()
Dim cnn1 As ADODB.Connection
Dim cnn2 As ADODB.Connection
Dim cnn3 As ADODB.Connection
Dim cnn4 As ADODB.Connection
' 不使用数据源名 (DSN) 打开连接。
Set cnn1 = New ADODB.Connection
cnn1.ConnectionString = "driver={SQL Server};" & _
"server=bigsmile;uid=sa;pwd=pwd;database=pubs"
cnn1.ConnectionTimeout = 30
cnn1.Open
' 使用 DSN 和 ODBC 标记打开连接。
Set cnn2 = New ADODB.Connection
cnn2.ConnectionString = "DSN=Pubs;UID=sa;PWD=pwd;"
cnn2.Open
' 使用 DSN 和 OLE DB 标记打开连接。
Set cnn3 = New ADODB.Connection
cnn3.ConnectionString = "Data Source=Pubs;User ID=sa;Password=pwd;"
cnn3.Open
' 使用 DSN 和单个参数而非连接字符串打开连接。
Set cnn4 = New ADODB.Connection
cnn4.Open "Pubs", "sa", "pwd"
' 显示连接的状态。
MsgBox "cnn1 state: " & GetState(cnn1.State) & vbCr & _
"cnn2 state: " & GetState(cnn2.State) & vbCr & _
"cnn3 state: " & GetState(cnn3.State) & vbCr & _
"cnn4 state: " & GetState(cnn4.State)
cnn4.Close
cnn3.Close
cnn2.Close
cnn1.Close
End Sub
Public Function GetState(intState As Integer) As String
Select Case intState
Case adStateClosed
GetState = "adStateClosed"
Case adStateOpen
GetState = "adStateOpen"
End Select
End Function
'数据库连接处理
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Function ConnectSybase(sr, db, us, pd, bs) As Boolean
Set Consb = New ADODB.Connection
Set Rsbdata = New ADODB.Recordset
On Error GoTo ErrMsg
'判断数据库是否已经打开 如果打开则先关闭
If Consb.State = adStateOpen Then
Consb.Close
End If
Dim strConnect As String
Consb.ConnectionTimeout = 3
If bs = 0 Then
'-------------------------------
'连接SQL数据库
strConnect = "Provider=SQLOLEDB.1;Data Source=" & sr & ";Persist Security Info=True;User ID=" & us & ";Password=" & pd & ";Initial Catalog=" & db
Consb.Open strConnect
'-------------------------------
'通过下句与ODBC数据源进行连接,不需用户选择数据源
'strConnect = "Provider=MSDASQL.1;Persist Security Info=False;" & " Extended Properties='DSN=chs;SRVR=zb;DB=zbserver;UID=sa2;PWD=abacus'"
'-------------------------------
Else
'连接sybase数据库
strConnect = "Provider=MSDASQL.1;DRIVER={Sybase System 11};Persist Security Info=False;DSN=; SRVR=" & sr & ";DB=" & db & ";UID=" & us & ";PWD=" & pd
Consb.Open strConnect
'-------------------------------
End If
'注意:如果你不想建立DSN,可采取无DSN连接方法如下:
'将上句改为 strConnect = "Provider=MSDASQL.1;DRIVER={Sybase System 11};Persist Security Info=False;DSN=; SRVR=服务器IP;DB=数据库;UID=用户名;PWD=密码"
'Persist Security是否采用集成安全机制
ConnectSybase = True
Exit Function
ErrMsg:
' MsgBox "连接数据库错误!请确认服务器是否开启.", 16
ConnectSybase = False
End Function
借人家的代码……我用这个,似乎没有楼主所提出的现象。虽然连接假的地址也要一定时间,但是不会导致没有相应。