TurboIMAGE/XL Database Management System Reference Manual MPE/iX V6.5 (30391-90011)
256 Chapter6
Host Language Access
ORDERS Database Model Program
Relative_Operator_For_Data_Item
Value_For_Data_Item
Lock_Descriptor_Customer_Array_Type is made up of:
Number_Of_Elements
Lock_Descriptor_Customer_Type
OBTAIN List ← "
@
;"
OBTAIN Key_Item_Value ← user input
CALL DBGET (DBname, Customer_Master, Mode7_Calculated, Status, List,
Customer_Buffer, Key_Item_Value)
ERROR CHECKING
Customer_Buffer_Old ← Customer_Buffer
DISPLAY Customer_Buffer
OBTAIN Customer_Buffer_New ← user input
OBTAIN Number_Of_Elements ← 1
OBTAIN Length_Of_Descriptor ← 22
OBTAIN Data_Set_Of_Descriptor ← "CUSTOMER;"
OBTAIN Data_Item_Of_Descriptor ← "ACCOUNT;"
OBTAIN Relative_Operator_For_Data_Item ← "="
OBTAIN Value_For_Data_Item ← Key_Item_Value
CALL DBLOCK (DBname, Lock_Descriptor_Customer_Array_Type,
Mode5_Unconditional, Status)
ERROR CHECKING
OBTAIN Text ← "Update entry on Customer set Begin "
OBTAIN Textlen ← 18
CALL DBBEGIN (DBname, Text, Mode1_Xbegin, Status, Textlen)
ERROR CHECKING
CALL DBGET (DBname, Customer_Master, Mode1_Reread, Status, List,
Customer_Buffer, Not_Used_Parm)
ERROR CHECKING
If Customer_Buffer is the same as Customer_Buffer_Old
Then continue
Otherwise
Let the user know that the entry has been modified by
another user, end the transaction, and release the locks.
CALL DBUPDATE (DBname, Customer_Master, Mode1_Update, Status, List,
Customer_Buffer_New)
ERROR CHECKING
OBTAIN Text ← "Update entry on Customer set End"
OBTAIN Textlen ← 16
CALL DBEND (DBname, Text, Mode1_Xend, Status, Textlen)
ERROR CHECKING
CALL DBUNLOCK (DBname, Customer_Master, Mode1_Unlock, Status)
ERROR CHECKING
END ROUTINE