如何在传统ASP中创建一个巨大的多维数组

时间:2011-04-12 14:29:48

标签: arrays asp-classic vbscript multidimensional-array

我正在尝试处理传统ASP中的大量数组,但我已达到极限....

实际上,我需要一个(70 x Sheets,10000 Rows,200 Columns)数组来准备XML电子表格和PDF文档。

我尝试过嵌套字典对象(见下文),但它们痛苦慢。

任何建议都会非常感谢.....

此致


使用字典对象: -

Dim HugeArray = CreateObject("Scripting.Dictionary")

Sub AddCell(x,y,z,aText)
    Dim NewCol

    if not HugeArray.exists(x) then 
        set NewCol = CreateObject("Scripting.Dictionary")
        HugeArray.Add x,NewCol
        set NewCol = nothing
    end if

    if not HugeArray(x).exists(y) then 
        set NewCol = CreateObject("Scripting.Dictionary")
        HugeArray(x).Add y,NewCol
        set NewCol = nothing
    end if

    if HugeArray(x).Exists(y) then 
        set y=HugeArray(x)(y)
        if not y.Exists(z) then 
            y.Add z,aText
        else
            y(z)=aText
        end if
    end if

End Sub

Function GetCell(x,y,z)
    Dim a
    GetCell=""
    if HugeArray(x).Exists(y) then 
        set a=HugeArray(x)(y)
        GetCell=a(z)
    end if
End Function

3 个答案:

答案 0 :(得分:0)

只是一个想法:你有没有尝试过使用json对象?见Homepage of Json 我认为大小的限制是你的网络服务器的记忆。

答案 1 :(得分:0)

你是否尝试过excel对象,也许它是针对常春藤负载进行优化的 加载数组后,在“准备XML电子表格和PDF文档”之前,您需要做什么?分类?为什么需要阵列?你不能保存到db上的临时表并在那里做所有脏工作吗?

答案 2 :(得分:0)

我以为我会分享我最后做的事情......

随着应用程序在生成数据的过程中,我将所有数据都输入到临时表中。

每个单元格都标有Web服务器会话ID和今天的日期。最后,我查询了DB以获取生成报告所需的单元格。

每次登录服务器都会删除所有行<今天的日期(以防止它成长)

不一定是最干净的解决方案,但它确实有效。