我需要在fox pro表中添加一行,并且在插入该行之前,我需要禁用在fox pro表上应用的触发器,并在插入该行之后将其启用。
有什么方法可以从c#.NET禁用Fox Pro触发器吗?
谢谢您对此的任何提示。
遗憾的是,即使使用ExecScript,也没有直接的方法。使用ExecScript,您可以运行delete trigger
代码,并且它将返回true
,而不会出现任何错误。但是,它不会删除触发器,也不会返回有关触发器仍完好无损的信息。不幸的是,您甚至无法使用ExecScript绕过VFPOLEDB不支持的代码。
唯一的方法是创建dbc的副本(使用VFP modify database
-或C#低级别(如果您足够勇敢的话)),并且在该副本中具有相同的表定义,而无需触发器。
例如:
复制您现有的.dbc(.dct和.dcx)
修改表以删除触发器(或在代码中完成:)
Delete Trigger On ('yourTableName') For Insert
这很麻烦,但总比没有好。
也许您想拥有一个VFP可执行文件,您可以使用参数调用该文件,并为您执行插入操作。