Sql server 脚本失败,错误代码为80040E31

Sql server 脚本失败,错误代码为80040E31,sql-server,vbscript,odbc,adodb,Sql Server,Vbscript,Odbc,Adodb,我们有一个VBScript,它将SAP业务对象数据库中的数据块下载到所谓的切片中,这些切片基本上是.csv文件。到目前为止,这个脚本运行得非常好,我根本不需要去研究它。但现在的失败是: 此错误所指的脚本文件部分是下面代码中的dbConn.Execute(strSQL)行(从下面的第5行)。 到目前为止,我尝试添加这些命令,但它们似乎无法解决任何问题: 'dbConn.ConnectionTimeout=100 'dbConn.CommandTimeout=100 脚本本身(不是全部,我不确定

我们有一个VBScript,它将SAP业务对象数据库中的数据块下载到所谓的切片中,这些切片基本上是.csv文件。到目前为止,这个脚本运行得非常好,我根本不需要去研究它。但现在的失败是:

此错误所指的脚本文件部分是下面代码中的
dbConn.Execute(strSQL)
行(从下面的第5行)。 到目前为止,我尝试添加这些命令,但它们似乎无法解决任何问题:

'dbConn.ConnectionTimeout=100
'dbConn.CommandTimeout=100
脚本本身(不是全部,我不确定是否需要其他脚本):

子运行文件信息文件夹(strFolder)
Dim FSO、objFolder、objFiles
Dim i、intTS、intTS文件开始、ts、tsKillBefore、ts文件开始、strModelName
尺寸dbConn、RST、RST2、strSQL
Dim STRVBS模型
暗淡的蓝色
“伊尼斯
strModelName=“bo_vbs_runner_1.5”
strConn=“DRIVER={SQL Server};Server=eubaseourcirep01;UID=ser\u login;PWD=ser\u login;DATABASE=ser”
strComputer=funstcomputername
strBORunner=“\\Eubaseurcirep01\reporting\DEVELOPMENT\BO\Automation\Models\BO\u auto\u run.xlsb”
"集,
Set dbConn=CreateObject(“ADODB.Connection”)
Set RST=CreateObject(“ADODB.RecordSet”)
Set RST2=CreateObject(“ADODB.RecordSet”)
设置WshShell=WScript.CreateObject(“WScript.Shell”)
设置FSO=Wscript.CreateObject(“Scripting.FileSystemObject”)
设置objFolder=FSO.GetFolder(strFolder)
设置objFiles=objFolder.Files
设置appExcel=CreateObject(“Excel.Application”)
'dbConn.ConnectionTimeout=100
'dbConn.CommandTimeout=100
strVBSmodel=strModelName&strComputer&&FunstrUserName&&funCurrProcessId&&fungetprocessidcurrentofexel(strComputer)
appExcel.Application.Visible=False
appExcel.Displayalerts=False
设置objBORunner=appExcel.Workbooks.Open(strBORunner)
dbConn.开放式结构
ts=FunGetServerNow(dbConn,RST)
tsKillBefore=DateAdd(“N”,-15,ts)
intTS=funTimeStampToInteger(FunGetServerNow(dbConn,RST))
'获取报告日期
strSQL=“从map.reportdate中选择yyyymmdd,其中dtAct=cast(GETDATE()作为日期)
RST.打开strSQL,dbConn
如果RST.EOF,则
strReportDate=“99991231”
其他的
strReportDate=RST.fields(0).value
如果结束
RST.close
'杀死停滞的excel和vbs进程

strSQL=“从[ser].[bo].[u log]中选择distinct*,其中[proc]='bo VBS'和result\u text='started'和end\u timestamp来解码0x8004nnnn错误

设施代码为4的HResult表示HResult包含OLE错误(0x0)= 到0x1ff),而范围的其余部分(0x200以后)是组件= 特定错误,因此一个组件的20e将具有不同的含义= 从另一个组件连接到20e


您很幸运,因为您的组件告诉您它是OLDB,有错误-超时

将超时设置为
0
,是否有帮助?根据文档,命令应“在需要时”运行“:
如果将属性设置为零,ADO将无限期地等待,直到执行完成。
-这听起来不错-但我担心有些东西卡住了,因为由于我将超时设置为0,所以没有出现第次错误,但也没有发生任何其他错误。”。脚本已经运行了半个小时了——第一个片段应该在几分钟后到达。是的,听起来查询在sql server本身中被阻止了。我会尝试使用sql server的工具在服务器端分析导致阻塞的原因-我不知道如何做,但这似乎是一个开始:我还会尝试确定服务器端是否有任何变化,等等。祝你好运,新年快乐!PS:当然可以尝试一些显而易见的事情,比如重新启动sql server。。。我没有访问此服务器的权限,因此这将很困难。。。无论如何,谢谢你的想法:)