请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

棠诗鲮

金牌服务用户

4

主题

25

帖子

287

积分

金牌服务用户

积分
287
最新发帖
棠诗鲮
金牌服务用户   /  发表于:2022-11-24 21:07  /   查看:69  /  回复:7
5金币
今天升级到8.0.103,把之前的应用拿来测试发现外联表有触发器的时候,现在使用表格提交和数据表更新操作都会报错。

不知道是这个版本的BUG还是做了限制,之前的版本没有报错。附图片。案例中修改FPrice1的时候就会报错,更新其他字段则不会报错。

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

感谢各位大佬的支持~ 可以考虑将所有的数据表操作命令都放到服务端去做,使用服务端命令数组参数的只发送变更数据,就可以获取到有哪些记录是被修改的,然后可以在服务端命令中对这些记录做处理。因为触发器是外连库本身对数据表做的操作,是会和活字格的更新操作产生冲突的。 所以建议是要么都是用外连库本身的操作,比如执行sql命令,存储过程操作数据加触发器,要么就都用活字格的命令,比如使用服务端命令对后续数据做处理 ...

7 个回复

倒序浏览
最佳答案
最佳答案
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2022-11-24 21:07:50
来自 8#
感谢各位大佬的支持~
可以考虑将所有的数据表操作命令都放到服务端去做,使用服务端命令数组参数的只发送变更数据,就可以获取到有哪些记录是被修改的,然后可以在服务端命令中对这些记录做处理。因为触发器是外连库本身对数据表做的操作,是会和活字格的更新操作产生冲突的。

所以建议是要么都是用外连库本身的操作,比如执行sql命令,存储过程操作数据加触发器,要么就都用活字格的命令,比如使用服务端命令对后续数据做处理



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
guoqp
金牌服务用户   /  发表于:2022-11-24 22:31:36
2#
活字格有自带的触发管理机制啊,为什么不用,原生的才是兼容最好的,
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2022-11-25 08:44:14
3#
您好,关于触发器的问题我们调查过,因为活字格在操作数据之后也会有后续的逻辑,

当有触发器时会相互干扰,可以参考一下这个帖子

当主表有触发器时候报有2个以上记录错误
https://gcdn.grapecity.com.cn/fo ... 1&fromuid=60953
(出处: 葡萄城产品技术社区)


回复 使用道具 举报
Syl悬赏达人认证
高级会员   /  发表于:2022-11-25 09:26:38
4#
触发器写到服务端命令,sql或者存储,提交后执行一下
回复 使用道具 举报
棠诗鲮
金牌服务用户   /  发表于:2022-11-25 09:57:24
5#
Joe.xu 发表于 2022-11-25 08:44
您好,关于触发器的问题我们调查过,因为活字格在操作数据之后也会有后续的逻辑,

当有触发器时会相互干 ...

我之前用的8.0.1的可以正常使用哦,是新版本才报错的。
回复 使用道具 举报
棠诗鲮
金牌服务用户   /  发表于:2022-11-25 10:00:52
6#
Syl 发表于 2022-11-25 09:26
触发器写到服务端命令,sql或者存储,提交后执行一下

我这里是用的表格提交,你也不知道用户改了哪一行,哪个字段,如果写sql或存储过程的话就要去更新所有的行,那样岂不是影响效率。还有我只是在修改某个字段才需要去触发修改别的表。
回复 使用道具 举报
Syl悬赏达人认证
高级会员   /  发表于:2022-11-25 11:16:27
7#
棠诗鲮 发表于 2022-11-25 10:00
我这里是用的表格提交,你也不知道用户改了哪一行,哪个字段,如果写sql或存储过程的话就要去更新所有的 ...

表格提交上一步是表格更新吧,那里就已经确定了范围,除非你用的所有航,不然更改的范围不会太大

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册