En mi caso particular, guardo en cada registro que se crea y modifica la terminal, el usuario y la hora hasta milisegundos (esto ya lo había pasado antes al foro).
Para eso utilizo la siguiente formula:
NTOM(VAL(STRTRAN(SYS(2007,SYS(0))+STR(VAL(SYS(1))- 2450000,5,0)+STR(SECONDS(),9,4)," ","0")))
Esto se almacena en un campo monetario., los 19 dígitos están conformados por:
- Los cinco primero son un hash de sys(0) que en fox te da combinado nombre estación y usuario.
- Los cinco siguientes te da el día juliano (le tienes que sumar 2450000)
- Los cinco siguientes son segundos desde la medianoche (0..86399)
- Los decimales son mili-segundos de la cifra anterior.
En una tabla guardas todas las combinaciones de SYS(2007, SYS(0)) que es el hash de terminal + usuario
Creas entonces una tabla con
PCyUsr = {cHash, cEstacion, cUsuario}
Luego en cada tabla de interés, colocas un campo monetario donde guardas el resultado de la formula que pase cada vez que se modifica el registro
para recuperar los valores, tomas los cinco primeros dígitos del campo y lo enganchas con PCyUsr
El resto te permite saber dia y hora.
Esa formula también la uso como clave calculada en lugar de autoincrementales, me sirve como pista de auditoria, y no tengo problemas en juntar tablas de diferentes orígenes.
Saludos: Miguel, La Pampa (RA)
Larga Vida y Prosperidad
Que la Fuerza los acompañe