如何在asp classic中声明没有维度的数组?
我想要的是,我想显示recordset
并将其保存在数组中。
<tr>
<td>Call Type</td>
<%
dim agentWithCallType( )
agentWithCallTypeCtr=0
if not RsAgentEffectivenessPerCallType.eof then
do while not RsAgentEffectivenessPerCallType.eof
%>
<td><% =RsAgentEffectivenessPerCallType("agentName") %></td>
<%
agentWithCallType(agentWithCallTypeCtr) = RsAgentEffectivenessPerCallType("agentName")
agentWithCallTypeCtr = agentWithCallTypeCtr +1
RsAgentEffectivenessPerCallType.movenext
loop
end if
%>
</tr>
我在这一行收到错误。
Microsoft VBScript运行时错误&#39; 800a0009&#39;
下标超出范围
agentWithCallType(agentWithCallTypeCtr) = RsAgentEffectivenessPerCallType("agentName")
答案 0 :(得分:2)
看起来您只是将记录集值分配给数组(并在TD
中显示结果)。如果要从记录集转到数组,可以使用GetRows()
对象的Recordset
方法。然后,您不必担心正确确定阵列的尺寸。
Dim a
a = RsAgentEffectivenessPerCallType.GetRows()
' a is now an array containing your recordset values
答案 1 :(得分:0)
您已声明了您的阵列,但未能声明它的界限。你想ReDim你的数组告诉VBScript你的数组有多大:
Dim agentWithCallType()
ReDim agentWithCallType(0)
或者你可以告诉它它从0开始的大小:
Dim agentWithCallType(0)
然后,当您循环浏览记录集后,您可以为每个要添加的记录增加数组的大小:
ReDim Preserve agentWithCallType(Ubound(agentWithCallType)+1)