问题描述
当我运行此代码时,查询超时已过期。我曾尝试对来自 Query timeout expired when trying to run a short procedure 的 Conn 和 Command 设置超时限制,但没有成功。您可以在超时条款的代码中看到我在 CAPS 中的注释。在 SSMS 中,它在大约 45 秒内执行。我的工作簿有多个使用相同连接的查询。这是最重的查询(返回大约 7k 行),所以我很确定问题是查询超时,而不是连接。
Sub Units()
Application.ScreenUpdating = False
Dim rs4 As Object
Set rs4 = CreateObject("ADODB.Recordset") '04Unit2
Dim sqlstr04 As String
sqlstr04 = "select * from dbo.[04Units]"
Sheet17.Cells.Clear
Call connectDatabase
rs4.Open sqlstr04,DBCONT
DBCONT.commandtimeout = 120 'CONNECTION TIMEOUT
rs4.commandtimeout = 120 'RECORDSET QUERY TIMEOUT
'Debug.Print sqlstrledger03
For intColIndex = 0 To rs4.Fields.Count - 1
Sheet17.Range("A1").Offset(0,intColIndex).Value = rs4.Fields(intColIndex).Name
Next
Sheet17.Range("A2").copyFromrecordset rs4
End Sub
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)