set exclusive off set reprocess to 300 if !file("system.dbf") create table system free (cTableName c(254), nKeyValue i) insert into system (cTableName, nKeyValue); values (padr(upper(alltrim("TEST")), len(cTableName), "*"), 0) use endif if !file("results.dbf") create table results free (cKeyValue i) index on cKeyValue tag cKeyValue candidate use endif set escape on do while .t. insert into results (cKeyValue) values (GetKeyValue("TEST")) enddo *------------------------------------------------- function GetKeyValue lparameters tcTableName, tnFieldLength local lcOldAlias, llTableUsed, llDone, lnReturnValue, lnBufferMode lcOldAlias = alias() llTableUsed = used("System") if llTableUsed select system lnBufferMode = cursorgetprop("Buffering") cursorsetprop("Buffering", 1) else select 0 use system endif llDone = .f. locate for cTableName == padr(upper(alltrim(tcTableName)), len(cTableName), "*") if !found() error "No key record for Table: '" + tcTableName + "'." endif do while !llDone if rlock() replace nKeyValue with nKeyValue + 1 lnReturnValue = nKeyValue unlock llDone = .t. endif enddo if !empty(lcOldAlias) select (lcOldAlias) endif if llTableUsed cursorsetprop("Buffering", lnBufferMode) else use in system endif return lnReturnValue