0

这真的越来越烦人了。以下是自定义数据库类中包含的方法。我将数据查询到记录集中,然后尝试将此数据转换为不带字段名称的数组。它似乎在函数内工作,因为我设置了 aresponse.write来检查是否有任何值。但是一旦退出函数,事情就会变得混乱(数组不一样)。

Public Function To2Array()
    dim A, x, columns
    columns = Rs.Fields.Count
    Rs.MoveFirst()
    x = 0
    do until Rs.EOF
        Redim A(x+1,columns)
        for y = 0 to columns - 1
            A(x,y) = Rs.Fields.Item(y)
                            response.write A(x,y) 'returns correct value
        Next
        x = x + 1       
        Rs.MoveNext()
    loop
    To2Array = A
End Function 

我分配了返回数组,但似乎什么都没有。

arr = db.To2Array()
response.write(arr(1,0)) 'returns nothing

谁能弄清楚我做错了什么?

4

2 回答 2

3
  1. 您只能增加 VBScript 数组的最后一维。所以你需要一个 colsXrows 数组。
  2. 要保留动态数组的“旧”部分,您必须 ReDim Preserve。
  3. 要从记录集中获取二维数组,请使用.GetRows - 并避免“自己动手”的所有风险。
于 2013-08-19T20:50:27.897 回答
1

每次重新调整它时,您都会丢失 A 中的值。使用 redim preserve 可以防止这种情况,但您只能在使用 preserve 时重新调整最后一个数组维度。

于 2013-08-19T20:52:33.577 回答