CacheSize property example (JScript)
Applies to: Access 2013, Office 2013
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';Integrated Security='SSPI';";
var rsCustomer = Server.CreateObject("ADODB.Recordset");
// caching variables
var Now = new Date();
var Start = Now.getTime();
var End, Cache, NoCache
try
{
// 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;
}
catch (e)
{
Response.Write(e.message);
}
finally
{
// clean up
if (rsCustomer.State == adStateOpen)
rsCustomer.Close;
if (Cnxn.State == adStateOpen)
Cnxn.Close;
rsCustomer = null;
Cnxn = null;
}
%>
<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 -->