日期:2012-10-20  浏览次数:20807 次

三、第一次测试

   在第一次测试中,我们模拟Microsoft ASP ADO示例中可找到的典型情形提取一个记录集。在这个例子(ADO__01.asp)中,我们首先打开一个连接,然后创建记录集对象。当然,这里的脚本按照本文第一部分所总结的编码规则作了优化。

< % Option Explicit % >
< !-- #Include file="ADOVBS.INC" -- >
< %
Dim objConn
Dim objRS

Response.Write( _
   "< HTML >< HEAD >" & _
   "< TITLE >ADO Test< /TITLE >" & _
   "< /HEAD >< BODY >" _
)

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open Application("Conn")

Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.ActiveConnection = objConn
objRS.CursorType = adOpenForwardOnly
objRS.LockType = adLockReadOnly
objRS.Open Application("SQL")

If objRS.EOF Then
   Response.Write("No Records Found")
Else
   'write headings
   Response.Write( _
      "< TABLE BORDER=1 >" & _
      "< TR >" & _
      "< TH >OrderID< /TH >" & _
      "< TH >CustomerID< /TH >" & _
      "< TH >EmployeeID< /TH >" & _
      "< TH >OrderDate< /TH >" & _
      "< TH >RequiredDate< /TH >" & _
      "< TH >ShippedDate< /TH >" & _
      "< TH >Freight< /TH >" & _
      "< /TR >" _
   )
   'write data
   Do While Not objRS.EOF
      Response.Write( _
         "< TR >" & _
         "< TD >" & objRS("OrderID") & "< /TD >" & _
         "< TD >" & objRS("CustomerID") & "< /TD >" & _
         "< TD >" & objRS("EmployeeID") & "< /TD >" & _
         "< TD >" & objRS("OrderDate") & "< /TD >" & _
         "< TD >" & objRS("RequiredDate") & "< /TD >" & _
         "< TD >" & objRS("ShippedDate") & "< /TD >" & _
         "< TD >" & objRS("Freight") & "< /TD >" & _
         "< /TR > " _
      )
      objRS.MoveNext
   Loop
   Response.Write("< /TABLE >")
End If

objRS.Close
objConn.Close
Set objRS = Nothing
Set objConn = Nothing

Response.Write("< /BODY >< /HTML >")
% >

   下面是测试结果:

   我们来看一下各栏数字的含义:
0    返回0个记录的页面所需要的TTLB(毫秒)。在所有的测试中,该值被视为生成页面本身(包括创建对象)的时间开销,不包含循环访问记录集数据的时间。
25    以毫秒计的提取和显示25个记录的TTLB
tot time/25    "25"栏的TTLB除以25,它是每个记录的总计平均时间开销。
disp time/25    "25"栏的TTLB减