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