Type Mismatch Error: 'UBound'
Type Mismatch Error: 'UBound'
我需要帮助解决一个非常烦人的问题,我从今天早上 8 点开始就一直在处理这个问题。在调试经典 asp 错误方面,我绝不是专家。但是,我知道的足以弄清楚发生了什么,但不完全确定如何 deal/eradicate 解决这个问题:
问题:sql 查询可能 return 没有任何东西会导致我的数组为空,这会给我标题中指定的错误。
代码:
233 while not rs.eof
234 varCampArray = split(trim(rs("Notes")) & "", ";")
235 If ubound(varCampArray) > 0 Then
236 varCampArray2 = split(varCampArray(0) & "", "=")
237 End If
238 if ubound(varCampArray2) > 0 then
254 wend
行 239-253 是不相关的(只是基于数组和另一个查询的计算)并且只是想添加 'wend' 语句所以没有人认为它没有正确编码。
额外信息:
这是我们的自定义 vb 应用程序,对于这个特定的 asp 文件,用户转到 Report>Daily>Summary,然后用户从那里选择某一天以获取当天的财务摘要。如果我 运行 今天的报告,它 运行s 并且我得到数字,如果我 运行 本月 26 日的报告,它 运行s 并且执行没有错误。如果我 运行 昨天(4/27/2016)我在我们的 vb 应用程序的 reportViewer 中得到这个:
(Microsoft VBScript 运行时间错误“800a000d”)
类型不匹配:'ubound'
/apps/Program14/reports/trans_summary.asp,第 238 行
我还没有尝试解决这个问题,因为我不确定如何处理这个问题。我什至查看了 iis 日志文件,它的错误是 500 0 0 130。然后配置 IE 以在 运行 时间内正确显示错误的详细信息。这就是它吐出的内容,目前被卡住了。任何帮助将不胜感激。我在谷歌上搜索并阅读了无数其他文章,但在这个问题上我仍然感到有些迷茫,而微软与外国技术支持一样有帮助。
当ubound(varCampArray)
不是>0
时,varCampArray2
会有什么?它可能不是一个数组。这就是 varCampArray2
上的 UBound
方法抛出错误的原因!
使用UBound前检查是否为数组即可
while not rs.eof
varCampArray = split(trim(rs("Notes")) & "", ";")
If ubound(varCampArray) > 0 Then
varCampArray2 = split(varCampArray(0) & "", "=")
End If
If isArray(varCampArray2) Then
if ubound(varCampArray2) > 0 then
'do something here
end If
Else
Msgbox "all these time i thought it was an array!!!"
End If
wend
或者简单地说,您可以在第一个 if 块内移动第二个 if。
while not rs.eof
varCampArray = split(trim(rs("Notes")) & "", ";")
If ubound(varCampArray) > 0 Then
varCampArray2 = split(varCampArray(0) & "", "=")
if ubound(varCampArray2) > 0 then
'do something here
end If
End If
wend
我需要帮助解决一个非常烦人的问题,我从今天早上 8 点开始就一直在处理这个问题。在调试经典 asp 错误方面,我绝不是专家。但是,我知道的足以弄清楚发生了什么,但不完全确定如何 deal/eradicate 解决这个问题:
问题:sql 查询可能 return 没有任何东西会导致我的数组为空,这会给我标题中指定的错误。
代码:
233 while not rs.eof
234 varCampArray = split(trim(rs("Notes")) & "", ";")
235 If ubound(varCampArray) > 0 Then
236 varCampArray2 = split(varCampArray(0) & "", "=")
237 End If
238 if ubound(varCampArray2) > 0 then
254 wend
行 239-253 是不相关的(只是基于数组和另一个查询的计算)并且只是想添加 'wend' 语句所以没有人认为它没有正确编码。
额外信息: 这是我们的自定义 vb 应用程序,对于这个特定的 asp 文件,用户转到 Report>Daily>Summary,然后用户从那里选择某一天以获取当天的财务摘要。如果我 运行 今天的报告,它 运行s 并且我得到数字,如果我 运行 本月 26 日的报告,它 运行s 并且执行没有错误。如果我 运行 昨天(4/27/2016)我在我们的 vb 应用程序的 reportViewer 中得到这个: (Microsoft VBScript 运行时间错误“800a000d”)
类型不匹配:'ubound'
/apps/Program14/reports/trans_summary.asp,第 238 行
我还没有尝试解决这个问题,因为我不确定如何处理这个问题。我什至查看了 iis 日志文件,它的错误是 500 0 0 130。然后配置 IE 以在 运行 时间内正确显示错误的详细信息。这就是它吐出的内容,目前被卡住了。任何帮助将不胜感激。我在谷歌上搜索并阅读了无数其他文章,但在这个问题上我仍然感到有些迷茫,而微软与外国技术支持一样有帮助。
当ubound(varCampArray)
不是>0
时,varCampArray2
会有什么?它可能不是一个数组。这就是 varCampArray2
上的 UBound
方法抛出错误的原因!
使用UBound前检查是否为数组即可
while not rs.eof
varCampArray = split(trim(rs("Notes")) & "", ";")
If ubound(varCampArray) > 0 Then
varCampArray2 = split(varCampArray(0) & "", "=")
End If
If isArray(varCampArray2) Then
if ubound(varCampArray2) > 0 then
'do something here
end If
Else
Msgbox "all these time i thought it was an array!!!"
End If
wend
或者简单地说,您可以在第一个 if 块内移动第二个 if。
while not rs.eof
varCampArray = split(trim(rs("Notes")) & "", ";")
If ubound(varCampArray) > 0 Then
varCampArray2 = split(varCampArray(0) & "", "=")
if ubound(varCampArray2) > 0 then
'do something here
end If
End If
wend