David,
in our environment, with a maximum of 20 simultanous users, and fast servers, we have so far over the last 5 years maybe lost in total 10 seconds in waiting, and we can live with that! The GetNext.. function usually takes only a few milliseconds to execute, so the likelyhood of two users asking for a number at the same time is minimal. And, by the way, as far as I remember the function was made using VFP6, which did not have the autoincrement field type. And you know, no need to fix it if it ain't broke. :-)
>Tore,
>
>The downside to one row with many columns is it'll give you much higher contention issues in a multi-user environment.
>
>One row per table would allow two people to have independent row level locks, where they are trying to get keys for two different tables.
>
>>I agree totally. The function I sent to Mohammed earlier today, is not in use by me anymore. In stead I use the following function, which here is english-ized. It uses a specific Nummer.dbf which has only one record but many fields containing the last used values for different tasks. The function returns the next number for the given field name.