vbscript在重新设置之前关闭对象

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

我最近继承了一个用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 = 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“完成程序修改时间”&时间
端函数