Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何使用VBScript从ServerManagementStudio中的特定数据库执行存储过程?_Mysql_Stored Procedures_Vbscript_Adodb - Fatal编程技术网

Mysql 如何使用VBScript从ServerManagementStudio中的特定数据库执行存储过程?

Mysql 如何使用VBScript从ServerManagementStudio中的特定数据库执行存储过程?,mysql,stored-procedures,vbscript,adodb,Mysql,Stored Procedures,Vbscript,Adodb,我的服务器管理工作室中有许多数据库。在其中一个数据库中,我使用了一个存储过程。我想使用VBScript执行它,并使用记录集将结果存储到文本文件中。有什么可能的办法吗?请帮我做这个 这是我的密码: Const DB_CONNECT_STRING = "Provider=SQLOLEDB.1;Data Source=CIBCWT12;Initial Catalog=dbFXCashCommerceManager;Trusted_Connection=yes;" SET objFSO = CREAT

我的服务器管理工作室中有许多数据库。在其中一个数据库中,我使用了一个存储过程。我想使用VBScript执行它,并使用记录集将结果存储到文本文件中。有什么可能的办法吗?请帮我做这个

这是我的密码:

Const DB_CONNECT_STRING = "Provider=SQLOLEDB.1;Data Source=CIBCWT12;Initial Catalog=dbFXCashCommerceManager;Trusted_Connection=yes;"

SET objFSO = CREATEOBJECT("Scripting.FileSystemObject")
CurrentDirectory = objFSO.GetParentFolderName(WSCript.ScriptFullName)
folder_name = CurrentDirectory & "\ModifReport\" & Replace(Date, "-", "_")

arr = split(folder_name, "\")
path = ""

For Each dir In arr
  If path <> "" Then path = path & "\"
  path = path & dir
  If objFSO.FolderExists(path) = False Then 
     objFSO.CreateFolder path
  End If
Next

'creating the file
set outFile = CreateObject("Scripting.FileSystemObject").CreateTextFile(folder_name & "\ModifReport" & "_" & Replace(Date, "-", "_") &".csv")

Set myConn = CreateObject("ADODB.Connection")
Set myRS = CreateObject("ADODB.recordSet" )
Set cmd = CreateObject("ADODB.Command" )

Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile(CurrentDirectory & "\listfile.txt",1)
SQLStr1 = objFileToRead.ReadAll()
objFileToRead.Close
Set objFileToRead = Nothing

myConn.Open DB_CONNECT_STRING

cmd.ActiveConnection = myConn
cmd.CommandText = SQLStr1
cmd.CommandType = 4
'cmd.Execute

'myRS.CursorType = 1
'myRS.Open SQLStr1, myConn, 0, 1, 4

Set myRS = myConn.Execute(SQLStr1,4)

outFile.Writeline "FXO_Warehouse_Code;TrackingNumber;1. Submitted;2. Processing;1-2 Hr;1-2 BHr;Processing Flag;3. Order Released;2-3 Hr;2-3 BHr;Released Flag;4. Order Ack by Branch;3-4 Hr;3-4 BHr;5. Order Completed;4-5 Hr;4-5 BHr;ExpectedDelivery;Order Returned to Intria;Transit;firstname;lastname;Currency Code;FGN Amount;Branch Flag;1-2BD;2-3BD;3-4BD;4-5BD;1-4BD;Brink Del Days;SLA Flag"
msgbox myRS.state 
msgbox myConn.state 

Do Until myRS.eof  
   outFile.Writeline myRS.Fields("FXO_Warehouse_Code") & ";" & myRS.Fields("TrackingNumber") & ";" & myRS.Fields("1. Submitted") & ";" & myRS.Fields("2. Processing") & ";" & myRS.Fields("1-2 Hr") & ";" & myRS.Fields("1-2 BHr") & ";" & myRS.Fields("Processing Flag") & ";" & myRS.Fields("3. Order Released") & ";" & myRS.Fields("2-3 Hr") & ";" & myRS.Fields("2-3 BHr") & ";" & myRS.Fields("Released Flag") & ";" & myRS.Fields("4. Order Ack by Branch") & ";" & myRS.Fields("3-4 Hr") & ";" & myRS.Fields("3-4 BHr") & ";" & myRS.Fields("5. Order Completed") & ";" & myRS.Fields("4-5 Hr") & ";" & myRS.Fields("4-5 BHr") & ";" & myRS.Fields("ExpectedDelivery") & ";" & myRS.Fields("Order Returned to Intria") & ";" & myRS.Fields("Transit") & ";" & myRS.Fields("firstname") & ";" & myRS.Fields("lastname") & ";" & myRS.Fields("Currency Code") & ";" & myRS.Fields("FGN Amount") & ";" & myRS.Fields("Branch Flag") & ";" & myRS.Fields("1-2BD") & ";" & myRS.Fields("2-3BD") & ";" & myRS.Fields("3-4BD") & ";" & myRS.Fields("4-5BD") & ";" & myRS.Fields("1-4BD") & ";" & myRS.Fields("Brink Del Days") & ";" & myRS.Fields("SLA Flag")
   myRS.MoveNext()
loop

myRS.Close
SET myRS = Nothing

myConn.Close
outFile.Close

msgbox "execution completed"
Const DB\u CONNECT\u STRING=“Provider=SQLOLEDB.1;Data Source=CIBCWT12;Initial Catalog=dbFXCashCommerceManager;Trusted\u Connection=yes;”
设置objFSO=CREATEOBJECT(“Scripting.FileSystemObject”)
CurrentDirectory=objFSO.GetParentFolderName(WSCript.ScriptFullName)
文件夹名称=当前目录&“\ModifReport\”替换(日期“-”,“\”)
arr=split(文件夹名称“\”)
path=“”
对于arr中的每个目录
如果路径为“”,则路径=路径&“\”
path=path&dir
如果objFSO.FolderExists(path)=False,则
objFSO.CreateFolder路径
如果结束
下一个
'创建文件
设置outFile=CreateObject(“Scripting.FileSystemObject”).CreateTextFile(文件夹名称&“\ModifReport”&“&”替换(日期“-”,“&”&“.csv”)
设置myConn=CreateObject(“ADODB.Connection”)
Set myRS=CreateObject(“ADODB.recordSet”)
Set cmd=CreateObject(“ADODB.Command”)
设置objFileToRead=CreateObject(“Scripting.FileSystemObject”).OpenTextFile(CurrentDirectory&“\listfile.txt”,1)
SQLStr1=objFileToRead.ReadAll()
objFileToRead。关闭
设置objFileToRead=Nothing
myConn.打开数据库连接字符串
cmd.ActiveConnection=myConn
cmd.CommandText=SQLStr1
cmd.CommandType=4
'cmd.Execute
'myRS.CursorType=1
'myRS.Open SQLStr1,myConn,0,1,4
设置myRS=myConn.Execute(SQLStr1,4)
输出文件,写入线“FXO_仓库代码;跟踪号;1.提交;2.处理;1-2小时;1-2 BHr;处理标志;3.发布订单;2-3小时;2-3 BHr;释放旗;4.按分支机构订购;3-4小时;3-4 BHr;5.订单完成;4-5小时;4-5 BHr;预期交付;订单退回英特里亚;过境;名字;姓氏;货币代码;FGN金额;分行旗;1-2BD;2-3BD;3-4BD;4-5BD;1-4BD;边缘日;SLA标志“
msgbox myRS.state
msgbox myConn.state
直到最后一个月
outFile.Writeline myRS.字段(“FXO_仓库代码”)&;“&myRS.Fields(“TrackingNumber”)&”;“&myRS.字段(“1.已提交”)&”;“&myRS.字段(“2.处理”)&”;“&myRS.字段(“1-2小时”)&;“&myRS.字段(“1-2 BHr”)&;“&myRS.Fields(“处理标志”)&”;“&myRS.字段(“3.订单已发布”)&”;“&myRS.字段(“2-3小时”)&;“&myRS.字段(“2-3 BHr”)&;“&myRS.Fields(“已发布标志”)&”;“&myRS.字段(“4.按分行确认订单”)&”;“&myRS.字段(“3-4小时”)&;“&myRS.字段(“3-4 BHr”)&;“&myRS.字段(“5.订单已完成”)&”;“&myRS.字段(“4-5小时”)&;“&myRS.字段(“4-5 BHr”)&;“&myRS.Fields(“ExpectedDelivery”)&”;“&myRS.Fields(“订单返回到Intria”)&”;“&myRS.字段(“运输”)&”;“&myRS.Fields(“firstname”)&”;“&myRS.Fields(“lastname”)&”;“&myRS.字段(“货币代码”)&”;“&myRS.字段(“FGN金额”)&”;“&myRS.字段(“分支标志”)&”;“&myRS.字段(“1-2BD”)&;“&myRS.字段(“2-3BD”)&;“&myRS.字段(“3-4BD”)&;“&myRS.字段(“4-5BD”)&;“&myRS.字段(“1-4BD”)&;“&myRS.Fields(“Brink Del Days”)&;“&myRS.Fields(“SLA标志”)
myRS.MoveNext()
环
迈尔斯,结束
设置myRS=Nothing
麦肯,完毕
出口,关闭
msgbox“执行已完成”
当我为一个普通的查询尝试上面的代码时,我得到了结果。但如果我尝试将其用于存储过程,它将显示为“对象关闭时不允许操作”

这里我从一个文本文件中读取存储过程

为了执行普通查询,我使用了
myRS.opensqlstr1,myConn,0,1,4

对于执行SP,我使用的是
Set myRS=myConn.Execute(SQLStr1,4)


我不明白为什么在执行存储过程时记录集会自动关闭。有人能帮我吗?

存储过程的额外返回消息会导致ADO结果集由于错误而过早关闭。因此,在尝试关闭结果集RS时,您会得到“由于对象已关闭,因此不允许操作。“错误


在代码正在调用的存储过程中,使用可强制存储过程不返回受影响的行计数。使用可消除存储过程错误导致VBScript崩溃的可能性,也可能不明智。

是否在存储过程中使用SET-NOCOUNT ON或SET-ANSI\u WARNINGS OFF?如果不是,请尝试将它们添加到存储过程中的“AS”下面。ADO会混淆额外的返回消息并关闭结果集对象。发布前(这适用于VBScript和Classic ASP,建议阅读前3点)?感谢Drake和Lankymart,它工作得很好。可能与