>I already have an audit trail and can tell what the user has changed, but the changes are system generated values, and the user is somehow firing these off in strange circumstances - unawaringly.
>
>I suppose I could add a call-stack to the Audit trail.
>
>Kev
That is my suggestion, since it seems that some other approaches (event tracking?) don't work in the executable. Useful functions would include program() and lineno().
If you get a record with unexpected changes, you could find out (I hope!) where the user changed it.
Is there a place in your program where the user can write his/her own expressions, and evaluate them with eval()? Something like a simple spreadsheet you provide the user within your own application. If yes, the user can, in theory, invoke some of your UDFs by accident.
For instance, instead of writing "1+2*sqrt(3)", the user might also write expressions like "RecalcAllPrices()".
Hilmar.
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)