ADODB CommandTimeout 在经典中执行存储过程 asp

ADODB CommandTimeout executing stored procedure in classic asp

我在一个非常古老的项目中遇到了问题。长时间的数据库进程中出现超时异常。

这是初始代码

Set objCmd = Server.CreateObject("ADODB.Command")
objCmd.ActiveConnection = Common_CnxStr
objCmd.CommandText = "Db.SP_Name"
objCmd.CommandType = adCmdStoredProc
/*some query parameters are added here*/  
objCmd.Execute

这会运行 90 秒,然后因超时异常而失败。我怎样才能将超时时间增加到例如 5 分钟。

我试图通过在我的代码中添加行 objCmd.CommandTimeout

来延长超时
Set objCmd = Server.CreateObject("ADODB.Command")
objCmd.CommandTimeout = 300 
objCmd.ActiveConnection = Common_CnxStr
objCmd.CommandText = "Db.SP_Name"
objCmd.CommandType = adCmdStoredProc
/*some query parameters are added here*/  
objCmd.Execute

但这不起作用,90 秒后我仍然有异常。我什至尝试这样做

Server.ScriptTimeout = 300
Set objCmd = Server.CreateObject("ADODB.Command")
objCmd.CommandTimeout = 300 
objCmd.ActiveConnection = Common_CnxStr
objCmd.ActiveConnection.CommandTimeout = 300
objCmd.CommandText = "Db.SP_Name"
objCmd.CommandType = adCmdStoredProc
/*some query parameters are added here*/  
objCmd.Execute

但这并没有改变什么。请帮忙。

尝试在 ASP 代码的开头添加:

<%
  Server.ScriptTimeout = 300 ' 5 minutes!
%>

无论如何,如果是性能问题,你应该让DBA去检查数据库

另请参阅: https://technet.microsoft.com/en-us/library/bb632464.aspx