>This is a strange situation I wanted to talk about. The Universal Thread is using the Visual FoxPro Seconds() function to calculate the amount of time required to process a transaction. When the transaction is completed, we issue REPLACE LAP WITH SECONDS()-gnTime where gnTime contains the Seconds() start time. So, this is usually returning 0 to 1 second lap time as this is about what it takes to process a Universal Thread transaction.
>
>Now, tonight I faced a situation where an error was returned at that line. After a few investigations, I finally found that the transaction started in the last second of the day and ended in the first second of the new day. So, I added a condition to detect if the SECONDS() is greater than gnTime in order to avoid that. But, the weird situation is that this is unlikely to happen as it requires a lot of precision. I had it about 4 times in the first 6 months of 2001. <s>
To avoid this I use:
lnTime1 = VAL(SYS(1)) * 86400 + SECONDS()
* some process here
lnDiff = VAL(SYS(1)) * 86400 + SECONDS() - lnTime1
This gives the maximum precision.
Nick Neklioudov
Universal Thread Consultant
3 times Microsoft MVP - Visual FoxPro
"I have not failed. I've just found 10,000 ways that don't work." - Thomas Edison