文档介绍:VFP表跟踪实现方法
Visual Foxpro与它的前期版本重大差异之一是使用了数据库(Database)这一强大功能,使之成为一个真正的DataBase。VFP的Database Container包含了表(Table)及表的各种属性
VFP表跟踪实现方法
Visual Foxpro与它的前期版本重大差异之一是使用了数据库(Database)这一强大功能,使之成为一个真正的DataBase。VFP的Database Container包含了表(Table)及表的各种属性定义,也包含了属于后端的SQL中的触发技术(Trigger)。
Trigger的使用为Database中的Table供应了一个记录级规章(即检测程序)。Trigger分为Insert Trigger、Update Trigger和Delete Trigger三种操作。Insert Trigger用于Table新增记录时所触发的检测程序,Update Trigger用于Table修改记录回存时所触发的检测程序,Delete Trigger用于Table中记录被删时所触发的检测程序。VFP允许对任一种操作设定不同的规章,该规章可以是表达式或用户自定义函数(UFD),若响应为真值时,表示触发胜利,若响应为假值时,表示触发失败。用户自定义函数(UFD)存储在Database Container中。
创立触发器有两种方式:
1) 翻开表属性”对话框,在 INSERT、UPDATE 或 DELETE 触发器框中,输入触发器表达式或用户自定义函数(UFD);
2) 使用 CREATE TRIGGER 命令。
创立、修改或移去存储过程有三种方式:
1) 在工程治理器中,选择并绽开一个数据库,选定“存储过程”,然后选择“新建”、“修改”或“移去”按钮;
2) 在数据库设计器中,从“数据库”菜单中选择“编辑存储过程”按钮;
3) 在COMMAND命令窗口中,使用 MODIFY PROCEDURE 命令。
表跟踪设计:
利用Insert Trigger、Update Trigger和Delete Trigger三种操作原理,我们可以构造备份被操纵记录的用户自定义函数,并将其参加需要进展表跟踪的数据文件Trigger中,以实现表跟踪。这样,不管用户使用程序进展对此表的操纵或直接翻开此表进展增删和修改记录,都能激发Trigger将被操纵记录进展日志记载。
本人构造了四个通用的自定义函数,Inslog()、Dellog()、Modlog()和addlog(),存放于Database Container的存储过程中。在需要进展表跟踪的数据文件的Insert Trigger、Delete Trigger和Update Trigger中分别参加Inslog()函数、Dellog()函数和Modlog()函数,以使对数据文件中记录的增、删和修改均激发Trigger进展日志记载。addlog(