日期:2008-09-20  浏览次数:20942 次

十、用哪种方法引用记录集字段值效率最高?

   10.1 测试

   至此为止我们一直通过名字引用记录集中的字段值。由于这种方法要求每次都必须寻找相应的字段,它的效率并不高。为证明这一点,下面这个测试中我们通过字段在集合中的索引引用它的值(ADO__08.ASP):


  'write data
   Do While Not objRS.EOF
      Response.Write( _
         "< TR >" & _
         "< TD >" & objRS(0) & "< /TD >" & _
         "< TD >" & objRS(1) & "< /TD >" & _
         "< TD >" & objRS(2) & "< /TD >" & _
         "< TD >" & objRS(3) & "< /TD >" & _
         "< TD >" & objRS(4) & "< /TD >" & _
         "< TD >" & objRS(5) & "< /TD >" & _
         "< TD >" & objRS(6) & "< /TD >" & _
         "< /TR > " _
      )
      objRS.MoveNext
   Loop


   和预期的一样,页面开销也有小小的变化(这或许是因为代码略有减少)。然而,这种方法在显示时间上的改善是相当明显的。

   在下一个测试中,我们把所有的字段分别绑定到变量(ADO__09.ASP):

If objRS.EOF Then
   Response.Write("No Records Found")
Else
   'write headings
   ...
   Dim fld0
   Dim fld1
   Dim fld2
   Dim fld3
   Dim fld4
   Dim fld5
   Dim fld6
   
   Set fld0 = objRS(0)
   Set fld1 = objRS(1)
   Set fld2 = objRS(2)
   Set fld3 = objRS(3)
   Set fld4 = objRS(4)
   Set fld5 = objRS(5)
   Set fld6 = objRS(6)
   
   'write data
   Do While Not objRS.EOF
      Response.Write( _
         "< TR >" & _
         "< TD >" & fld0 & "< /TD >" & _
         "< TD >" & fld1 & "< /TD >" & _
         "< TD >" & fld2 & "< /TD >" & _
         "< TD >" & fld3 & "< /TD >" & _
         "< TD >" & fld4 & "< /TD >" & _
         "< TD >" & fld5 & "< /TD >" & _
         "< TD >" & fld6 & "< /TD >" & _
         "< /TR >" _
      )
      objRS.MoveNext
   Loop
   
   Set fld0 = Nothing