0

使用 Sax ActiveX 脚本(长篇故事),我有 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

奇怪的是,同样的代码结构在我上周编写的脚本中运行。我只是更改了几个查询和函数的名称(查找 > 替换)。

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

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

4

2 回答 2

0

您可以将其存储在另一个变量中,也可以将其存储在ReDimrtnArray 变量中以获得适当的大小。为了 Redim,您需要知道大小。

于 2010-02-02T03:25:51.187 回答
0

弄清楚了。

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

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

于 2010-02-02T18:20:31.680 回答