>* NewKey.prg >LPARAMETERS pcTableName >LOCAL lnNewKey, lcAlias, lcOrder, lnBuffering >lcAlias = ALIAS() >IF NOT USED("System") > USE System AGAIN ALIAS System >ELSE > SELECT System >ENDIF >lnBuffering = CursorGetProp("BUFFERING","System") >CursorSetProp("BUFFERING",0,"System") >lcOrder = SET("ORDER") >SET ORDER TO TableName >SEEK UPPER(ALLTRIM(pcTableName)) >IF NOT FOUND() > INSERT INTO System (TableName, NextKey) VALUES (UPPER(pcTablename), 1) > lnNewId = 0 >ELSE > DO WHILE NOT RLOCK() > ENDDO > lnNewKey = System.NextKey > REPLACE NextKey WITH NextKey + 1 > UNLOCK >ENDIF >CursorSetProp("BUFFERING",lnBuffering,"System") >IF NOT EMPTY( lcOrder ) > SET ORDER TO &lcOrder >ELSE > SET ORDER TO 0 >ENDIF >IF NOT EMPTY( lcAlias ) > SELECT ( lcAlias ) >ELSE > SELECT 0 >ENDIF >RETURN lnNewKey >Hi JimB,