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 -->
CacheSize Property | Recordset Object