专家可以查看我的脚本吗?我在Classic ASP中遇到了一个奇怪的错误:
Microsoft VBScript运行时错误' 800a0009'
下标超出范围:'我'
在第23行:对于i = 0到ubound(arDataArray)
Set adoCn = CreateObject("ADODB.Connection")
Set AdoRs = CreateObject("ADODB.Recordset")
'Find out connecting credentials
strSERVERspecific=Coli(0)
strDATABASENAMEspecific=Coli(1)
strUIDspecific=Coli(2)
strPWDspecific=Coli(3)
adoCn.Open "Provider=SQLOLEDB;server=" & strSERVERspecific & ";database=" & strDATABASENAMEspecific & ";uid=" & strUIDspecific & ";pwd=" & strPWDspecific & ";"
sSql = "Select * From Customers"
set adoRs = adoCn.Execute(sSql)
'GetRows Retrieves multiple records of a Recordset object into an array.
arDataArray = adoRs.GetRows
Response.Write "ArrayUbound=" & ubound(arDataArray) & "<br>"
For i = 0 to ubound(arDataArray)
Response.Write "(0,i) : " & arDataArray(0,i) & " (1,i) : " & arDataArray(1, i)
Response.Write "(2,i) : " & arDataArray(2,i) & " (3,i) : " & arDataArray(3, i) & "<BR>"
Next
adoRs.Close
adoCn.Close
set adoRs = Nothing
Set adoCn = Nothing
为了确保我没有比阵列更多的记录或字段,我拍摄了我的&#34;客户&#34;表(但我还没有10点声望发布图片)。你必须相信我,我有:11个领域和4个记录。
我补充说,函数Coli(x)读取位于服务器端的txt文件的一行(隐藏于public / httpdocs),其中x
等于以下相关行:
虽然这个功能显然没有问题。
我非常感谢任何提示在哪里寻找(我对此错误感到恼火,并且暂时无法解决)。非常感谢!
答案 0 :(得分:3)
问题出在您的ubound语句中 - 没有维度参数的ubound将默认返回第一个维度,但您在第二个维度上迭代(使用i)。换句话说,你的i从0到10迭代,而不是从0到3。
因此,您应该将错误行更改为:
For i = 0 to ubound(arDataArray, 2)
那应该解决它。