对象不断超出 vbscript/asp 经典的范围

Object keeps falling out of scope in vbscript/asp classic

所以我有一个从数据库中提取的项目列表,需要以非常具体和复杂的方式进行排序。为了解决这个问题,我制作了一个包含记录集中所有信息的对象,并按数组组织它们,我可以按照我想要的顺序打印出来。问题是,在 "do while rs.eof" 之后,我将所有对象设置为我需要的任何对象,当循环结束时它们超出范围,即使数组本身没有。我已经检查了对象是否被设置在循环中并且它们可以工作,但是当我到达 Response.Write() 时它们就不再存在了。我没有包括循环的开头,因为它或多或少是复制粘贴了数组更改的 else 语句。有什么建议吗?

Else
            ReDim Preserve f0(Ubound(f0)+1)
            Set tab = new TabletHelper
            Set f0(Ubound(f0)) = tab
            item  = rs("Item")
            dest = rs("Destination")
            time = rs("DateTime")
            f0(Ubound(f0)).setItem(item)
            f0(Ubound(f0)).setLocation(dest)
            f0(Ubound(f0)).setDateTime(time)
        End If
        rs.movenext
    loop

    rs.Close

    If Ubound(a045) > 0 then
    for i = 1 to Ubound(a045)
            Response.Write("<tr><td>"&a045(i).iNum()&"</td><td>"&a045(i).dest()&"</td><td>"&a045(i).dateT()&"</td></tr>")
    next

所以我想出了我的问题。我最初将我的数组初始化为大小 0,因此当代码顶部的 redim 运行 时,它会将数组的大小调整为 1,使我正在处理的任何元素成为数组中的第一个。这显然给了我一个错误,我通过将数组初始化为大小 1 来修复它。但是,我忘记对此进行补偿并将 redim 语句移动到 if 语句的末尾并更改 for 循环的边界。简而言之,我是个白痴。从好的方面来说,我了解了更多关于如何正确 post 的知识!