La Web del Programador: Comunidad de Programadores
 
    Pregunta:  270 - RUTINA PARA CONTROLAR LOS ACCESOS AL ARCHIVO
Autor:  JuanCarlos
Como podria hacer una subrutina que me controlase los ultimos accesos a un determinado fichero, tiempo y lo que han realizado sin utilizar claves.

  Respuesta:  Juan Reyes
Hola, Para controlar los accesos al archivo, hora, fecha y que se hizo, si se modificó, agregó, eliminó, debes controlarlo cuando grabas en todas las secciones de tu sistema.
Puedes crear en cada base de datos tres campos :

Usuario N 3
Hora C 5
Estado C 1 // M Modificado I Ingresado E eliminado, etc.
FechaEst d 8 // fecha que representa cuando se hizo el cambio de estado
con esto en cada registro sabrás que se hizo y la hora.

La otra idea es llevar una base de datos con un historial.
Usuario N 3
Hora C 5
Fecha D 8
descripcion C 20

Cada vez que crees, modifiques o elimines un registro tendrás que grabar en este historial todos los datos. en la descripción puedes colocar :
Borró F/435435
ingresó cliente 123037871
mod nota 234324
http://members.xoom.com/jonysoft
http://members.xoom.com/manuales


  Respuesta:  Gerardo A. Mendoza
Hola: A manera de ayuda te puedo decir que tienes dos opciones:
1) Crear un archivo de texto en el cual graves los datos que te interesan. La rutina debe abrir y/o cerrar el archivo. Es como imprimir en un archivo en vez de una hoja. Posteriormente puedes imprimirlo, revisarlo, borrarlo, lo que quieras.
2) Creo que es mucho mas sencilla esta opción. Utiliza una tabla (.dbf) con los campos de acuerdo a lo que requieras. Cuando accesen al archivo, ejecuta la rutina que graba en la tabla los que requieres. Después revisas, imprimes depuras, lo que quieras. Como idea, se me ocurre lo siguiente:
Procedure Accesos(cTabla, cAccion, dFecha, cHora)
If dFecha == Nil
dFecha := Date()
EndIf
If cHora == Nil
cHora := Time()
EndIf
// Puedes validar acceso en una red
Append Blank
tabla := cTabla
accion := cAccion
fecha := dFecha
hora := cHora
// Si es en red desbloquea regiostro
Espero que te sirvan las ideas.:-)