我的全部vb代码如下:==================================================================================Public configFile As String Public IP As String Public DatabaseName As String Public UserID As String Public Password As String Private Sub Form_Load()
Dim sysConn As New ADODB.Connection '建立一个 ADO Connection Dim cmd As New ADODB.Command
On Error Resume Next configFile = App.Path + "\SchedualReport.ini" '得到配置文件(.ini) Open configFile For Input As #1
Do Input #1, a$ k = InStr(1, a$, "=") a0 = Trim(Left(a$, k - 1)) '得到“=”左边的变量名 a1 = Trim(Right(a$, Len(a$) - k)) '得到“=”右边的变量值 If LCase(a0) = "ip" Then IP = a1 '服务器ip ElseIf LCase(a0) = "databasename" Then DatabaseName = a1 '数据库名 ElseIf LCase(a0) = "userid" Then UserID = a1 '数据库用户名 ElseIf LCase(a0) = "password" Then Password = a1 '数据库口令 ElseIf LCase(a0) = "show" Then If a1 = 1 Then '用于调试,“1”为显示界面,“0”为不显示 Me.Visible = True Else Me.Visible = False End If End If
Loop Until EOF(1)
With sysConn .ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" & UserID & ";Initial Catalog=" & DatabaseName & ";Data Source=" & IP & ";password=" & Password .Open End With
If Err.Number <> 0 Then log.Text = log.Text & Now & "存储过程执行错误:" log.Text = log.Text & " " & Err.Description Else log.Text = log.Text & Now & "存储过程执行完成。" End If
Close End Sub================================================================================== ==================================================================================SchedualReport.ini配置文件内容==================================================================================IP=192.168.0.124 DatabaseName=UltraDB UserID=sa Password= Show=1==================================================================================
超时:
1:企业管理器->服务器->属性->连接->查询超时(改为0或一个较大的数)
2:ADO的连接超时属性connectiontimeout 设大点.
3:ADO的CommandTimeout设大点
我又加了两句代码:
sysConn.ConnectionTimeout = 3600000
sysConn.CommandTimeout = 3600000
情况依旧。
Public IP As String
Public DatabaseName As String
Public UserID As String
Public Password As String
Private Sub Form_Load()
Dim sysConn As New ADODB.Connection '建立一个 ADO Connection
Dim cmd As New ADODB.Command
On Error Resume Next configFile = App.Path + "\SchedualReport.ini" '得到配置文件(.ini)
Open configFile For Input As #1
Do
Input #1, a$
k = InStr(1, a$, "=")
a0 = Trim(Left(a$, k - 1)) '得到“=”左边的变量名
a1 = Trim(Right(a$, Len(a$) - k)) '得到“=”右边的变量值
If LCase(a0) = "ip" Then
IP = a1 '服务器ip
ElseIf LCase(a0) = "databasename" Then
DatabaseName = a1 '数据库名
ElseIf LCase(a0) = "userid" Then
UserID = a1 '数据库用户名
ElseIf LCase(a0) = "password" Then
Password = a1 '数据库口令
ElseIf LCase(a0) = "show" Then
If a1 = 1 Then '用于调试,“1”为显示界面,“0”为不显示
Me.Visible = True
Else
Me.Visible = False
End If
End If
Loop Until EOF(1)
With sysConn
.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" & UserID & ";Initial Catalog=" & DatabaseName & ";Data Source=" & IP & ";password=" & Password
.Open
End With
log.Text = log.Text & Now & "存储过程开始执行..."
sysConn.ConnectionTimeout = 3600000
sysConn.CommandTimeout = 3600000
sysConn.Execute (" exec GET_IF_DAY")
If Err.Number <> 0 Then
log.Text = log.Text & Now & "存储过程执行错误:"
log.Text = log.Text & " " & Err.Description
Else
log.Text = log.Text & Now & "存储过程执行完成。"
End If
Close
End Sub==================================================================================
==================================================================================SchedualReport.ini配置文件内容==================================================================================IP=192.168.0.124
DatabaseName=UltraDB
UserID=sa
Password=
Show=1==================================================================================