引用记录集中域值的最有效方法是什么? 
  到目前为止,我都是用名字引用记录集中的域值的。这可能是一种效率很低的方法,因为每次调用都需要查找域。为了证明这一点,下面的测试就要通过记录集中域的集合的指针来引用域(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 
  Set fld1 = Nothing 
  Set fld2 = Nothing 
  Set fld3 = Nothing 
  Set fld4 = Nothing 
  Set fld5 = Nothing 
  Set fld6 = Nothing 
  Response.Write("< /TABLE >") 
 End If 
  到目前,这种方法形成的结果是最好的。每条记录的显示时间下降成了.45 毫秒。 
  现在,所有测试脚本的配置都要求对结果记录集有一些了解。比如说,我们一直在栏标题中给域名编码,单独地引用这些域的值。下面的例子提供了一个动态的解决方案,在域的集合中循环,不仅得到数据,也得到域的标题(ADO__10.asp ): 
 If objRS.EOF Then 
  Response.Write("No Records Found") 
 Else 
  'write headings 
  Response.Write("< TABLE BORDER=1 >< TR >") 
  For Each objFld in objRS.Fields 
  Response.Write("< TH >" & objFld.name & "< /TH >") 
  Next 
  Response.Write("< /TR >") 
  'write data 
  Do While Not objRS.EOF 
  Response.Write("< TR >") 
  For Each objFld in objRS.Fields 
  Response.Write("< TD >" & objFld.value & "< /TD >") 
  Next 
  Response.Write("< /TR >") 
  objRS.MoveNext 
  Loop 
  Response.Write("< /TABLE >") 
 End If 
 可以看到,我们在性能上有一个损失,但是这个方法还是比ADO__07.asp要快一些。 
  下面的测试是在最后两个测试之间进行一些折中。通过在一个动态分配数组中保存域的引用,既维持了动态的灵活性,也挽回了一些性能上的损失。 
 If objRS.EOF Then 
  Response.Write("No Records Found") 
 Else 
  Dim fldCount 
  fldCount = objRS.Fields.Count 
  Dim fld() 
  ReDim fld(fldCount) 
  Dim i 
  For i = 0 to fldCount-1 
  Set fld(i) = objRS(i) 
  Next 
  'write headings 
  Response.Write("< TABLE BORDER=1 >< TR >")