VBScript:错误10023:数组索引超出范围(重用数组变量时出现问题)

时间:2010-02-02 02:17:05

标签: arrays vbscript sax

使用Sax ActiveX Scripting(长话题),我有3个嵌套的if语句,它们重用相同的返回变量。脚本看起来大致如下:

Dim rtnArray As Variant
If variable1 <> "" Then
    ' Perform SQL query against DB2 database
    rtnArray = DB2SQLSearch(Query)
    If UBound(rtnArray) = 0 Then
        ' ditto
        rtnArray = DB2SQLSearch(Query2)
        MsgBox "Gets this far"
        If UBound(rtnArray) = 0 Then ' Error!
            ' Never make it here

奇怪的是,这个相同的代码结构正在我上周写的一个脚本中工作;我只是更改了几个查询和函数名称(找到&gt;替换)。

在第二次查询后,我尝试了MsgBox CStr(rtnArray(0)(0)),但产生了Error 10025 in : Array has a different number of indexes.

错误代码对应于以下手册:
http://www.ftgsoftware.com/manuals/basic32.pdf

2 个答案:

答案 0 :(得分:0)

您可以将其存储在另一个变量中,或者ReDim rtnArray变量以保存适当的大小。为了Redim,您需要知道大小。

答案 1 :(得分:0)

想出来。

在这种特殊情况下,我连接的用户对第一个表有授权,但没有第二个表。

这没有抛出错误,但有一条消息我可以检查是否有成功,所以我可以查找并抛出我自己的错误,而不是传回一个空数组。 (这不是一个合适的Null,坦白说我仍然不能100%确定它是什么,除了Variant。但它肯定不喜欢UBound()