声明没有维度asp经典的数组

时间:2014-03-11 20:57:59

标签: asp-classic

如何在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")

2 个答案:

答案 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)