IF SEEK(lcAlias, "Ids", "table") IF RLOCK() lnID = ids.nextid REPLACE ids.nextid WITH ids.nextid + 1 UNLOCK ENDIF ENDIFNormalmente faço assim:
IF NOT SEEK(lcAlias, "Ids", "table") APPEND BLANK IN Ids REPLACE table WITH lcAlias IN Ids ENDIF IF RLOCK("Ids") lnID = ids.nextid REPLACE ids.nextid WITH ids.nextid + 1 IN Ids UNLOCK IN Ids ENDIFO detalhe final e que me resolveu esses problemas com transações: uso uma tabela livre para gravar os Ids, pois tabelas livres não são consideradas em transações.