Examples: CacheLimit property
This example shows an action (the Click sub) that displays the current CacheLimit and FetchBatchSize values, sets new ones according to user input, and displays the new values. The example makes sure that FetchBatchSize is not greater than CacheLimit.
Uselsx "*LSXODBC"
%INCLUDE "lsconst.lss"
Dim con As ODBCConnection
Dim qry As ODBCQuery
Dim result As ODBCResultSet
Sub Postopen(Source As Notesuidocument)
Set con = New ODBCConnection
Set qry = New ODBCQuery
Set result = New ODBCResultSet
Set qry.Connection = con
Set result.Query = qry
con.ConnectTo("ATDB")
qry.SQL = "SELECT * FROM STUDENTS ORDER BY LASTNAME"
result.Execute
...
End Sub
Sub Click(Source As Button)
Dim cacheLimit As String
Select Case result.CacheLimit
Case DB_ALL : cacheLimit = "DB_CALL"
Case DB_NONE : cacheLimit = "DB_NONE"
Case Else : cacheLimit = Cstr(result.CacheLimit)
End Select
If Messagebox("Current settings" & Chr(10) & Chr(10) _
& "Cache limit: " & cacheLimit & Chr(10) _
& "Fetch batch size: " & Cstr(result.FetchBatchSize), _
MB_YESNO, "Do you want change?") = IDYES Then
cLimit = Inputbox _
("Enter 0 for DB_NONE or size of cache", _
"Cache limit?")
If cLimit = 0 Then
result.cacheLimit = DB_NONE
Elseif cLimit > 0 Then
result.cacheLimit = cLimit
Else
Messagebox _
"Cache limit must be 0 or positive integer"
Exit Sub
End If
fbSize = Inputbox _
("Enter fetch batch size", "Fetch batch size")
If fbSize < 1 Then
Messagebox _
"Fetch batch size must be positive and not zero"
result.FetchBatchSize = 1
Elseif cLimit <> 0 And fbSize > cLimit Then
result.FetchBatchSize = cLimit
Messagebox _
"Fetch batch size cannot exceed cache limit"
Else
result.FetchBatchSize = fbSize
End If
Select Case result.CacheLimit
Case DB_ALL : cacheLimit = "DB_ALL"
Case DB_NONE : cacheLimit = "DB_NONE"
Case Else : cacheLimit = Cstr(result.CacheLimit)
End Select
Messagebox "New settings" & Chr(10) & Chr(10) _
& "Cache limit: " & cacheLimit & Chr(10) _
& "Fetch batch size: " & _
Cstr(result.FetchBatchSize), "New settings"
End If
End Sub
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
result.Close(DB_CLOSE)
con.Disconnect
End Sub