>In an existing application which I am modifying an auditlog which records values before and after the changes to the fields.Currently audit log is done by calling a generic function, i.e.
>
> x = auditlog('table','key','keyvalue')
>
>For a few fields in one table a comment also has to entered if the field changes. I do not want to rewrite the function since I do not know how many comments I will have and I do not want to break existing code. What is best way of doing this. Some possiblities I condidered,
>1. add some form properties to hold the comments but can I use them in the function with out explicitly passing then to the function, if so how?
>2. create public variables that get released as soon as I return form function, do not care for this one if I can avoid it.
>3. other ideas?
It is quite customary for me (may someone call this a "design pattern") to add another parameter to the function, and provide a default value for it in the function. So the first lines of your function may be:
Parameters pTable, pKey, pKeyValue, pComment
pComment=iif(empty(pComment, "", pComment)
The second line will just make sure that the pComment is made a string if the function is called with only three parameters. Somewhere in the function, add a few lines to deal with the case when len(pComment)#0. That way your function uses the fourth parameter if it's there, and works just like before if it's not.