SQL和VB脚本超时

时间:2017-08-09 13:18:01

标签: sql excel-vba settimeout vba excel

我正在努力避免发生超时情况。目前,脚本在测试环境中运行100%,但一切都在本地运行。因此,现在安装在实时环境中,确实需要更长的时间。但是它会出现VB超时默认设置为30秒。然而,与SQL不同,我不熟悉VB,因此我不确定设置它的代码。目前的代码如下:

Dim strFile As String
Dim strCon As String
Dim strSQL As String
Dim dateRows As Variant
Dim i As Integer
Dim today As Date
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

 strFile = Workbooks(1).FullName
 strCon = "Provider=SQLOLEDB.1; Data Source=ABC;Initial    catalog=ABC;Integrated Security=ABC;"

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
 range1 = Sheets("Line data ( Do not alter )").Range("AA9")
 cn.Open strCon
 strSQL = "Select "order by userid, appointmentdate "
 rs.Open strSQL, cn

 Sheets("Line data ( Do not alter )").Range("AA9").CopyFromRecordset rs

cn.Close
Set rs = Nothing
Set cn = Nothing
End Sub

我发现代码表明comm.CommandTimeout = 10,但不确定把它放在哪里..

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

在ADODB中,您有2次超时:

  1. 记录为here
  2. 的连接超时
  3. 记录here
  4. 的命令超时

    尝试打开连接时会触发连接超时。 运行命令时命令超时。

    如果您在cn.ConnectionTimeout = someSeconds行收到错误: 您应该设置rs.Open

    如果您在cn.CommandTimeout = someSeconds行收到该邮件: 您应该设置{{1}}