ADO 2.7 Samples

CacheSize Property Example (JScript)

This example uses the CacheSize property to show the difference in performance for an operation performed with and without a 30-record cache. Cut and paste the following code to Notepad or another text editor, and save it as CacheSizeJS.asp.

<!-- BeginCacheSizeJS -->
<%@ Language="JScript" %>
<%// use this meta tag instead of adojavas.inc%>
<!--METADATA TYPE="typelib" uuid="00000205-0000-0010-8000-00AA006D2EA4" -->

<HTML>
<HEAD>
<title>CacheSize Property Example (JScript)</title>
<style>
<!--
body {
   font-family: 'Verdana','Arial','Helvetica',sans-serif;
   BACKGROUND-COLOR:white;
   COLOR:black;
    }
.thead2 {
   background-color: #800000; 
   font-family: 'Verdana','Arial','Helvetica',sans-serif; 
   font-size: x-small;
   color: white;
   }
.tbody { 
   text-align: center;
   background-color: #f7efde;
   font-family: 'Verdana','Arial','Helvetica',sans-serif; 
   font-size: x-small;
    }
-->
</style>
</HEAD>
<BODY>
<h1>CacheSize Property Example (JScript)</h1>
<%
   // connection and recordset variables
   var Cnxn = Server.CreateObject("ADODB.Connection")
   var strCnxn = "Provider=sqloledb;Data Source=" + Request.ServerVariables("SERVER_NAME") + ";" +
      "Initial Catalog=Northwind;User Id=sa;Password=;"
   var rsCustomer = Server.CreateObject("ADODB.Recordset");
   // caching variables
   var Now = new Date();
   var Start = Now.getTime();
   var End, Cache, NoCache
   
   // open connection
   Cnxn.Open(strCnxn)
   
   // open a recordset on the Employee table using client-side cursor
   rsCustomer.CursorLocation = adUseClient;
   rsCustomer.Open("Customers", strCnxn);
   
   // loop through the recordset 20 times
   for (var i=1; i<=20; i++)
   {
      rsCustomer.MoveFirst();
      while (!rsCustomer.EOF)
      {
         // do something with the record
         var strTemp = new String(rsCustomer("CompanyName"));
         rsCustomer.MoveNext();
      }
   }
   
   Now = new Date();
   End = Now.getTime();
   NoCache = End - Start;

   // cache records in groups of 30
   rsCustomer.MoveFirst();
   rsCustomer.CacheSize = 30;
   
   Now = new Date();
   Start = Now.getTime();
   
   // loop through the recordset 20 times
   for (var i=1; i<=20; i++)
   {
      rsCustomer.MoveFirst();
      while (!rsCustomer.EOF)
      {
         // do something with the record
         var strTemp = new String(rsCustomer("CompanyName"));
         rsCustomer.MoveNext();
      }
   }
   
   Now = new Date();
   End = Now.getTime();
   var Cache = End - Start;
%>

   <table border="2">
      <tr class="thead2">
         <th>No Cache</th>
         <th>30 Record Cache</th>
      </tr>
      <tr class="tbody">
         <td><%=NoCache%></td>
         <td><%=Cache%></td>
      </tr>
   </table>

</BODY>
</HTML>
<!-- EndCacheSizeJS -->

See Also

CacheSize Property | Recordset Object

© 1998-2001 Microsoft Corporation. All rights reserved.