556ec9944a6f860b10e197f9c712221da222b5f3
API/CodeSamples/CacheQueries.md
| ... | ... | @@ -0,0 +1,55 @@ |
| 1 | +#CacheQueries |
|
| 2 | + |
|
| 3 | +[[_TOC_]] |
|
| 4 | + |
|
| 5 | +##About |
|
| 6 | + |
|
| 7 | +Gets or sets the value indicating whether the result sets of individual queries should be cached. |
|
| 8 | +This feature can be very useful if you have problems with performance in your database or slow connection to it. |
|
| 9 | +Results for default query (SELECT TOP 100...) will be cached, so there will be no extra queries to the data base. |
|
| 10 | +You can change the expiration time for this cache using something like AdHocContext.Driver.QueryCachingTime = TimeSpan.FromMinutes(1) (Default is 5 minutes). |
|
| 11 | +Caching the result sets of queries may result in a report not displaying the latest data (if the table has changed and the cache has not been refreshed), unless you change the number of results, or anything else that would change the query itself. |
|
| 12 | + |
|
| 13 | +**Default Value:** True |
|
| 14 | + |
|
| 15 | +##Global.asax (C♯) |
|
| 16 | + |
|
| 17 | +```csharp |
|
| 18 | +//main class: inherits DatabaseAdHocConfig or FileSystemAdHocConfig |
|
| 19 | +public class CustomAdHocConfig : Izenda.AdHoc.DatabaseAdHocConfig |
|
| 20 | +{ |
|
| 21 | + // Configure settings |
|
| 22 | + // Add custom settings after setting the license key and connection string by overriding the ConfigureSettings() method |
|
| 23 | + public static void InitializeReporting() { |
|
| 24 | + //Check to see if we've already initialized. |
|
| 25 | + if (HttpContext.Current.Session == null || HttpContext.Current.Session["ReportingInitialized"] != null) |
|
| 26 | + return; |
|
| 27 | + AdHocSettings.LicenseKey = "INSERT_LICENSE_KEY_HERE"; |
|
| 28 | + AdHocSettings.SqlServerConnectionString = "INSERT_CONNECTION_STRING_HERE"; |
|
| 29 | + Izenda.AdHoc.AdHocSettings.AdHocConfig = new CustomAdHocConfig(); |
|
| 30 | + AdHocSettings.CacheQueries = true; //The relevant setting |
|
| 31 | + HttpContext.Current.Session["ReportingInitialized"] = true; |
|
| 32 | + } |
|
| 33 | +} |
|
| 34 | +``` |
|
| 35 | + |
|
| 36 | +##Global.asax (VB.NET) |
|
| 37 | + |
|
| 38 | +```visualbasic |
|
| 39 | +'main class: inherits DatabaseAdHocConfig or FileSystemAdHocConfig |
|
| 40 | +Public Class CustomAdHocConfig |
|
| 41 | + Inherits Izenda.AdHoc.DatabaseAdHocConfig |
|
| 42 | + |
|
| 43 | + Shared Sub InitializeReporting() |
|
| 44 | + 'Check to see if we've already initialized |
|
| 45 | + If HttpContext.Current.Session Is Nothing OrElse HttpContext.Current.Session("ReportingInitialized") IsNot Nothing Then |
|
| 46 | + Return |
|
| 47 | + 'Initialize System |
|
| 48 | + AdHocSettings.LicenseKey = "INSERT_LICENSE_KEY_HERE" |
|
| 49 | + AdHocSettings.SqlServerConnectionString = "INSERT_CONNECTION_STRING_HERE" |
|
| 50 | + Izenda.AdHoc.AdHocSettings.AdHocConfig = New CustomAdHocConfig() |
|
| 51 | + AdHocSettings.CacheQueries = True 'The relevant setting |
|
| 52 | + HttpContext.Current.Session("ReportingInitialized") = True |
|
| 53 | + End Sub |
|
| 54 | +End Class |
|
| 55 | +``` |
|
| ... | ... | \ No newline at end of file |