guoqp 发表于 2022-8-18 12:15:12

活字格没有表格数据提交时的相关事件,我就用数据库触发器来实现它

有时我们有这样的场景需求
比如收款表数据发生更新,我们会希望同步更新另一个项目表的收款总额

因为活字格没有如果利用活字格表格只有双击事件与行变更事件,没有数据更新或者提交相关事件,要实现这样的功能就只能不用表格自带的编辑功能了,或者用松绑定,但处理逻辑还是很复杂的

于是我想到干脆从底层着手,活字格只管编辑数据,表之间的数据联动我用触发器来实现,实测效果非常理想,而且联动逻辑可以自由维护,相当好用。

截个图给大家抛砖引玉

dufeng888999 发表于 2022-8-18 15:24:01

不会写代码怎么办?

guoqp 发表于 2022-8-24 12:40:44

dufeng888999 发表于 2022-8-18 15:24
不会写代码怎么办?

那就用松绑定吧,在提交前手动处理

qtcxc 发表于 2022-8-24 13:32:45

本帖最后由 qtcxc 于 2022-8-24 15:03 编辑

过来人经验,建议用服务器端命令写事务处理,也不要用这种方法实现。

原因:
1 逻辑和程序分离,日后维护将会很难维护(逻辑隐含在触发器中,会让后续看程序代码做迭代的人抓狂);
2 没有事务能力的时候万不得已才这样做,现在活字格服务器端已支持事务了,没必要这样设计;
3 我从4.0版本用到现在,过往4.0还没有服务器端命令和事务能力时为了做一些事务一致性处理存在这样的用法,在升级到5.0,6.0后编写服务器端命令操作数据时出现过,触发器与服务器端数据操作命令冲突的情况,具体表现时写服务器端命令数据库插入数据后会查询返回整张表所有数据导致服务器端命令插入数据速度异常慢;(不确定这种情况最终活字格是否已经底层上规避了,可以参考我以前发过的帖子:https://gcdn.grapecity.com.cn/fo ... ad&tid=81715&extra=)

综上所述 在你遇到问题前,建议放弃这种做法,提前避规避可能遇到的问题,或者针对这个问题跟活字格官方确认是否新的版本已经处理过不会出现了再继续这样用。

alexyui 发表于 2022-8-24 13:41:11

qtcxc 发表于 2022-8-24 13:32
过来人经验,建议用服务器端命令写事务处理,也不要用这种方法实现。

原因:


对,触发器跟服务端命令主键自增行为冲突,让人头大。

guoqp 发表于 2022-8-24 14:15:22

qtcxc 发表于 2022-8-24 13:32
过来人经验,建议用服务器端命令写事务处理,也不要用这种方法实现。

原因:


感谢分享经验,我也会尝试用你说的方法的

guoqp 发表于 2022-8-25 22:17:20

qtcxc 发表于 2022-8-24 13:32
过来人经验,建议用服务器端命令写事务处理,也不要用这种方法实现。

原因:


今天按你这个思路重新整理了一下,发现确实好使,不但系统变得更加模块化,维护起来相当OK,三方系统数据接口也变得相当EASY。
页: [1]
查看完整版本: 活字格没有表格数据提交时的相关事件,我就用数据库触发器来实现它