vbscript在重新设置之前关闭对象
我最近继承了一个用VBScript编写的DTS包,我对VBS没有太多接触,我想检查我添加了“我是否需要rs1.close here注释”的函数是否应该在再次设置rs1对象之前关闭它vbscript在重新设置之前关闭对象,vbscript,Vbscript,我最近继承了一个用VBScript编写的DTS包,我对VBS没有太多接触,我想检查我添加了“我是否需要rs1.close here注释”的函数是否应该在再次设置rs1对象之前关闭它 Function Proc_Amend() On error resume next dtspackagelog.writestringtolog "Start Proc_Amend at " & Time ' Check record to be amended exists set rs1 = c
Function Proc_Amend()
On error resume next
dtspackagelog.writestringtolog "Start Proc_Amend at " & Time
' Check record to be amended exists
set rs1 = cn1.execute("SELECT StatusFlag from wmLoadId where LoadID='" & iarray(1) & _
"' and OrderNumber='" & iarray(2) & "' and OrderLineNumber='" & iarray(4) & "' and OrderReleaseNumber='" & iarray(5) & "'")
If rs1.eof then
Err.Raise 9994 , , "Record to be amended DOES NOT exist"
Call ErrHand(err.number,err.description)
Else
If UCASE(rs1.fields("StatusFlag").value) = "PENDING" Then
iarray(14) = "PENDING"
End If
' Do i need a rs1.close here
set rs1 = cn1.execute("UPDATE wmLoadId set OrderWeight = " & iarray(9) & ",StatusFlag='" & iarray(14) & "',Timestamp = getdate() where LoadID='" & iarray(1) & _
"' and OrderNumber='" & iarray(2) & "' and OrderLineNumber='" & iarray(4) & "' and OrderReleaseNumber='" & iarray(5) & "'")
If Err Then
' An error occurred so process
Call ErrHand(err.number,err.description)
End If
' Check and update planned_ship_date (if reqd.)
' Do i need a rs1.close here
set rs1 = cn1.execute("SELECT planned_ship_date from Add_Info where LoadID='" & iarray(1) & _
"' and OrderNumber='" & iarray(2) & "' and OrderLineNumber='" & iarray(4) & "' and OrderReleaseNumber='" & iarray(5) & "'")
If rs1.eof then
Err.Raise 9988 , , "No Add_Info record exists to update"
Call ErrHand(err.number,err.description)
Else
cm.CommandText="select convert(varchar(10),wanted_delivery_date,103) AS PlanShip from OPENQUERY(DB33,'select wanted_delivery_date from CUSTOMER_ORDER_LINE_TAB where order_no=''" & iarray(2) & _
"'' and LINE_NO = ''" & iarray(4) & "'' AND REL_NO = ''" & iarray(5) & "'' ' ) "
dtspackagelog.writestringtolog "Planned_Ship_Date (amend) command is " & cm.CommandText
set rs = cm.execute()
dtspackagelog.writestringtolog "Err status after Planned_Ship_Date (amend) command is " & err.number & " at " & Time
if rs.eof then
On Error Resume Next
dtspackagelog.writestringtolog "No CUSTOMER_ORDER record found for order line (amend) at " & Time
Err.Raise 9987 , , "No CUSTOMER_ORDER record found for order line (amend) " & iarray(2) & " / " & iarray(4) & " / " & iarray(5)
Call ErrHand(err.number,err.description)
else
planship = rs.Fields("PlanShip").value
rs.close
End If
dtspackagelog.writestringtolog "PlanShip (amend) set to " & planship & " at " & Time
If rs1.fields("planned_ship_date").value <> planship Then
dtspackagelog.writestringtolog "Update PlanShip from " & rs1.fields("planned_ship_date").value & " to " & planship & " at " & Time
' Do i need a rs1.close here
set rs1 = cn1.execute("UPDATE Add_Info set planned_ship_date = '" & planship & "' where LoadID='" & iarray(1) & _
"' and OrderNumber='" & iarray(2) & "' and OrderLineNumber='" & iarray(4) & "' and OrderReleaseNumber='" & iarray(5) & "'")
If Err Then
' An error occurred so process
Call ErrHand(err.number,err.description)
End If
End If
End If
End If
dtspackagelog.writestringtolog "Finish Proc_Amend at " & Time
End Function
函数过程修正()
出错时继续下一步
dtspackagelog.writestringtolog“启动程序修改时间”&时间
'要修改的检查记录存在
设置rs1=cn1.execute(“从wmLoadId中选择StatusFlag,其中LoadID=””&iarray(1)和_
“'and OrderNumber='”&iarray(2)&“'and OrderLineNumber='”&iarray(4)&“'and OrderReleaseNumber='”&iarray(5)&“”)
如果rs1.eof那么
错误:Raise 9994,“要修改的记录不存在”
呼叫ErrHand(错误号码、错误描述)
其他的
如果UCASE(rs1.fields(“StatusFlag”).value)=“待定”,则
iarray(14)=“待定”
如果结束
“这里需要rs1.close吗
设置rs1=cn1.execute(“更新wmLoadId set OrderWeight=“&iarray(9)&”,StatusFlag='”&iarray(14)&',Timestamp=getdate(),其中LoadID='”&iarray(1)&_
“'and OrderNumber='”&iarray(2)&“'and OrderLineNumber='”&iarray(4)&“'and OrderReleaseNumber='”&iarray(5)&“”)
如果有错误,那么
'因此进程发生错误
呼叫ErrHand(错误号码、错误描述)
如果结束
'检查并更新计划发货日期(如果需要)
“这里需要rs1.close吗
设置rs1=cn1.execute(“从添加信息中选择计划发货日期,其中LoadID=”)&iarray(1)和_
“'and OrderNumber='”&iarray(2)&“'and OrderLineNumber='”&iarray(4)&“'and OrderReleaseNumber='”&iarray(5)&“”)
如果rs1.eof那么
错误:Raise 9988,“不存在要更新的添加信息记录”
呼叫ErrHand(错误号码、错误描述)
其他的
cm.CommandText=“选择convert(varchar(10),通缉交货日期,103)作为OPENQUERY中的计划(DB33,“从客户订单行中选择通缉交货日期”,其中订单号=””&iarray(2)和_
“''和行号=''”&iarray(4)和“''和相关号=''”&iarray(5)和“''””
dtspackagelog.writestringtolog“计划发货日期(修订)命令为”&cm.CommandText
设置rs=cm.execute()
dtspackagelog.writestringtolog“计划发货日期(修订)后的错误状态”命令为“&Err.number&“at”&Time”
如果是rs.eof那么
出错时继续下一步
dtspackagelog.writestringtolog“未找到当时订单行(修订)的客户订单记录”&时间
错误:Raise 9987,“未找到订单行(修订)”和iarray(2)和“/”以及iarray(4)和“/”和iarray(5)的客户订单记录
呼叫ErrHand(错误号码、错误描述)
其他的
planship=rs.字段(“planship”).值
克洛斯
如果结束
dtspackagelog.writestringtolog“计划(修改)设置为”&计划时间(&T)
如果rs1.字段(“计划装运日期”)值为planship,则
dtspackagelog.writestringtolog“更新计划从”和rs1.字段(“计划发货日期”)。值和“到”&计划发货日期和时间(&T)
“这里需要rs1.close吗
设置rs1=cn1。执行(“更新添加信息集计划发货日期=”&planship&“其中LoadID=””&iarray(1)&_
“'and OrderNumber='”&iarray(2)&“'and OrderLineNumber='”&iarray(4)&“'and OrderReleaseNumber='”&iarray(5)&“”)
如果有错误,那么
'因此进程发生错误
呼叫ErrHand(错误号码、错误描述)
如果结束
如果结束
如果结束
如果结束
dtspackagelog.writestringtolog“完成程序修改时间”&时间
端函数