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

関連項目