Hi Dan,
>Here's the scenario we want to avoid. First process comes in finds the record it wants. Right before it retrieves the data, the second process suspends the first, and moves the record point to the new record. The second process returns the correct data. Now the first process is on the wrong record and returns the incorrect data.
In this regard there's no difference between a normal function and a COM server, as methods are not processed parallel. If the method leaves the environment in the state it found it, there would be no conflict at all. All you need to do is to restore the record pointer, SET variables, etc. before you return.
Alternatively, the method could create an object based on Session and use that new datasession to process all tables.
Christof
--
Christof