>********************************************************************** >FUNCTION SerialNumber(tcSequence) > * Get serial number. Used mainly to generate primary keys. > * The easiest way to achieve this is to call this function from a fields default value. > * Example: default value for primary key "Client" of table "Client" = SerialNumber("Client") > * This function accesses table SerialNumber. Fields: Sequence C(30), NextNum I. > tcSequence = lower(tcSequence) > local lnSelect > lnSelect = select() > if used("serialnumber") > select serialnumber > else > select 0 > use serialnumber > endif > set order to "sequence" > seek padr(tcSequence, len(sequence)) > if not found() > append blank > replace sequence with tcSequence, nextnum with 1 > endif > local lnReturnValue > if lock() > lnReturnValue = nextnum > replace nextnum with nextnum + 1 > else > lnReturnValue = -1 > endif > unlock > select (lnSelect) > return lnReturnValue >ENDFUNC >What is lock(), I think, it should be rlock(). How do you handle -1?