LOTUS CONNECTOR


例:HasRowChanged メソッド
次の例には行を更新するアクション (Click サブルーチン) が含まれます。実際の更新の前に、このプログラムがフェッチしてから行が別のプログラムによって更新されていないかどうかを検査します。

Uselsx "*LSXODBC"

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 workspace As New NotesUIWorkspace
 Dim uidoc As NotesUIDocument
 Set uidoc = workspace.CurrentDocument
 Call result.SetValue("STUDENT_NO", _
 Cint(uidoc.FieldGetText("Student_No")))
 Call result.SetValue("FIRSTNAME", _
 uidoc.FieldGetText("FirstName"))
 Call result.SetValue("LASTNAME", _
 uidoc.FieldGetText("LastName"))
 Call result.SetValue("ADDRESS", _
 uidoc.FieldGetText("Address"))
 Call result.SetValue("CITY", _
 uidoc.FieldGetText("City"))
 Call result.SetValue("STATE", _
 uidoc.FieldGetText("State"))
 Call result.SetValue("ZIP", _
 uidoc.FieldGetText("Zip"))
 Call result.SetValue("PHONE", _
 uidoc.FieldGetText("Phone"))
 Call result.SetValue("CR_TO_DATE", _
 uidoc.FieldGetText("Cr_to_date"))
 If result.HasRowChanged Then
   If Messagebox("Someone else changed this row " & _
   "after you fetched it." & _
   "Do you want to proceed?", MB_YESNO, _
   "Row was changed!")<> IDYES Then
     Exit Sub
   End If
 End If
 result.UpdateRow
End Sub

Sub Queryclose(Source As Notesuidocument, Continue As Variant)
 result.Close(DB_CLOSE)
 con.Disconnect
End Sub

関連項目