热情软件屋

 

表缓冲和参照完整性的区别是什么


编号:QA001431
建立日期: 1999年7月29日 最后修改日期:1999年7月29日
所属类别:

佚名:
    表缓冲和参照完整性的区别是什么?

回答:

    摘自《远程续缘》第16期(http://jfzcc.yeah.net)
    在多用户环境中,记录和表的缓冲可以直接用来更新表和记录。这可以免除一些不必要的过程:将一个记录中的数据放入系统变量中,编辑该系统变量,检查是否记录发生改变,然后将变化写入记录中。要了解详细信息,请参阅《开发指南》中的第十七章,“共享访问程序设计”。在一个关系型数据库中,参照完整性包含了一些规则,控制不同表中主关键字和外部关键字之间的关系。参照完整性可以确保所有的外部关键字在相应的主关键字字段中满足一个值。除了让 Visual FoxPro 行使参照完整性准则外,您还可以建立一些存储过程,在更新、删除或者插入表中的一个记录时,执行指定的操作。“参照完整性生成器”可以为每个更新、删除或者插入触发器建立存储过程。在下面列出 Visual FoxPro 触发器的类型,同时在该触发器后面括号中列出可用的存储过程。
    * Update (Ignore, Cascade, or Restrict)
    * Delete (Ignore, Cascade, or Restrict)
    * Insert...(Ignore and Restrict)
    存储过程的名字插入到“表设计器”中“表属性”对话框的每个触发器中。典型情况下,触发器作为数据库存储过程的一部分存储(如“参照完整性生成器”一样),但也可以作为外部程序或者过程。使用 CREATE TRIGGER 命令可以编程的方式建立触发器,也可以向数据库中添加一个存储过程,然后在“表设计器”中“表属性”对话框的相应触发器中引用该触发器。一般情况下,触发器在 Update 和 Delete 事件上执行级联或者限定功能,在 Insert 事件上执行限定功能(使用“参照完整性生成器”),但是这些触发器也可以调用和参照完整性无关的存储过程。例如,一个 Update 触发器可执行存储过程,该过程向其他部门发送一个信息,将所作的改变通知其他人员。在下面情况中,参照完整性和表缓冲相互作用:当更新、删除或者插入一个记录后,执行了记录级事件代码;触发器在规则后执行。但是,当使用表和行缓冲时,在记录更新之前不执行触发器(当调用 TABLEUPDATE( ) 函数,或者使用行缓冲时移动了记录指针,记录更新发生)。参照完整性和缓冲可以相互独立使用,使用参照完整性时,并不要求一定使用缓冲。在多用户环境下,无论是否使用了参照完整性,都必须使用缓冲。

此问题由远程续缘回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio