从c#(.NET)禁用Fox pro表触发器

问题描述 投票:0回答:1

我需要在fox pro表中添加一行,并且在插入该行之前,我需要禁用在fox pro表上应用的触发器,并在插入该行之后将其启用。

有什么方法可以从c#.NET禁用Fox Pro触发器吗?

谢谢您对此的任何提示。

c# .net triggers odbc foxpro
1个回答
1
投票

遗憾的是,即使使用ExecScript,也没有直接的方法。使用ExecScript,您可以运行delete trigger代码,并且它将返回true,而不会出现任何错误。但是,它不会删除触发器,也不会返回有关触发器仍完好无损的信息。不幸的是,您甚至无法使用ExecScript绕过VFPOLEDB不支持的代码。

唯一的方法是创建dbc的副本(使用VFP modify database-或C#低级别(如果您足够勇敢的话)),并且在该副本中具有相同的表定义,而无需触发器。

例如:

  • 复制您现有的.dbc(.dct和.dcx)

  • 修改表以删除触发器(或在代码中完成:)

    Delete Trigger On ('yourTableName') For Insert
    
  • 以其他名称保存此.dbc,.dct和.dcx。
  • 还原现有的.dbc,.dct,.dcx。
  • 当需要时,您可以替换.dbc,.dct,.dcx文件,然后在完成后放回。

这很麻烦,但总比没有好。

也许您想拥有一个VFP可执行文件,您可以使用参数调用该文件,并为您执行插入操作。

© www.soinside.com 2019 - 2024. All rights reserved.