LOTUS CONNECTOR


例:CacheLimit プロパティ
次の例は、現在の CacheLimit と FetchBatchSize の値を表示し、ユーザー入力に従って新しい値を設定して新規値を表示するアクション (Click サブルーチン) を示しています。この例は FetchBatchSize が 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

関連項目