DBLOCK (base,zzzz,mode,stat). Mode-1 lock base, -2 lock base if free, -3 lock set, -4 lock set if free, -5 lock entries, -6 lock entries if free (i.e., item-level locking). DBMEMO (base,text,mode,stat,textlen). Write a memo to the log file. Same parameters as for DBBEGIN. DBOPEN (base,password,mode,stat). Opens base in the mode specified: 1. Modify with enforced locking; allow concurrent -1,-5. 2. Update, allow concurrent -2,-6. 3. Modify exclusive. 4. Modify, allow concurrent -6 read. 5. Read, allow concurrent -1,-5. 6. Read, allow concurrent -6 and either -2, one -4, or -8. 7. Read exclusive. 8. Read, allow concurrent read in modes -6,-8. DBPUT (base,set,mode,stat,list,buf). Add new entry. Missing fields are set to 0. Requires search and sort fields. DBUNLOCK (base,set,mode,stat). Remove all locks you have made on the database. DBUPDATE (base,set,mode,stat,list,buf). Update the current record. If CIupdate is On, can modify detail set key and sort items, but not master set keys. Be careful between DBGET and the matching DBUPDATE or you may update the wrong record. If you have unlocked the entry, before you update it you must relock, reget, and compare. DBXBEGIN (base,text,mode,stat,textlen). Start a dynamic roll-back transaction. Text and textlen are the same as DBBEGIN. DBXEND (base,text,mode,stat,textlen). End a dynamic transaction. Mode-1 ends transaction, while -2 writes it to disc. Text and textlen are same as in DBBEGIN. DBXUNDO (base,text,mode,stat,textlen). Roll back the active dynamic transaction. Text and textlen are same as DBBEGIN. Item-Level Locking Modes-5 and -6 of DBLOCK take a table of lock descriptors as the second parameter. The first word tells how many lock descriptors follow. The first word of each lock descriptor is the length in halfwords. number of descriptors {one-word, single integer} Lock Descriptor 1: 1 length {in words, including this word} 2-9 set (x16) {name, #, "", or ";" to ignore} 10-17 item (x16) {name, #, or "" for entire set} 18 relop (x2) {"= " or " =", "<=", or ">="} 19... value {value to compare against} Lock Descriptor 2 ... Using a lock descriptor, you may lock an entire database (set "= " ""), an entire dataset (item "= " ""), or a group of entries in a dataset (item "= " "xxxxx" or item ">=" "xxxxx").