导语:今天在写ASP一维数组的相关程序时遇到一个问题,提示“Microsoft VBScript 编译器错误 (0x800A0402)缺少整型常数”。为了方便大家以后编程中出现同样问题能第一时间找到答案,特将这问题整理如下。
结合代码说明Microsoft VBScript 编译器错误 (0x800A0402) 缺少整型常数问题的解决办法。
<% set rec=server.createobject("adodb.recordset") sql="select object_name(a.id) as tablename,a.name as rowname,b.value as colname from syscolumns a left join sysproperties b on a.id=b.id and a.colid=b.smallid where a.id=object_id('vipdf')" rec.open sql,conn,3,3 num=rec.RecordCount dim myArray(num) For i=0 To num-1 myArray(i)=rec("rowname") rec.movenext if rec.eof then exit for Next For i=0 To ubound(myArray) response.Write(myArray(i)&" ") Next %>
把变量num作为数组myArray的长度参数,结果运行报错。
错误类型:
Microsoft VBScript 编译器错误 (0x800A0402)
缺少整型常数
修改过的代码,完美解决这问题。代码如下:
<% set rec=server.createobject("adodb.recordset") sql="select object_name(a.id) as tablename,a.name as rowname,b.value as colname from syscolumns a left join sysproperties b on a.id=b.id and a.colid=b.smallid where a.id=object_id('vipdf')" rec.open sql,conn,3,3 num=rec.RecordCount dim myArray() redim myArray(num) For i=0 To num-1 myArray(i)=rec("rowname") rec.movenext if rec.eof then exit for Next For i=0 To ubound(myArray) response.Write(myArray(i)&" ") Next %>
通过两端代码比较,发现在后一段重新定义了数组。
dim:定义一个固定维数的数组,如dim arr(100)。
redim:重新定义动态数组的维数,必须先用dim定义一个动态数组: dim arr(),然后可重新定义:redim arr(2,100)、redim arr(1000)。
好了,通过redim重新定义,就可以解决Microsoft VBScript 编译器错误 (0x800A0402) 缺少整型常数的问题。
声明:如需转载,请注明来源于www.webym.net并保留原文链接:http://www.webym.net/jiaocheng/166.html