找回密码
 立即注册

QQ登录

只需一步,快速开始

罗耀斌

金牌服务用户

111

主题

376

帖子

1209

积分

金牌服务用户

积分
1209
QQ
罗耀斌
金牌服务用户   /  发表于:2024-11-13 15:26  /   查看:89  /  回复:5
本帖最后由 罗耀斌 于 2024-11-13 15:30 编辑

修改数据时条件未选择导致数据全部修改的问题


如上图,开发人员犯了错误修改表时选择了条件,但没有把ID维护上,查询策略选择了空记录,按常规理解应该是生成 where 1=0,然后修改不了任何数据,但实际生成的语句如下图


最最关键的是还修改成功了,是当前表所有数据全部修改了


我觉的数据库操作还是需要严谨一点,这个语句生成出来应该是执行错误的,毕竟公司给开发人员犯错的次数和机会还是要有的

本帖子中包含更多资源

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

x

5 个回复

倒序浏览
Levi.Zhang
超级版主   /  发表于:2024-11-13 16:14:39
沙发
大佬,这不是Bug呢,是活字格的一种策略哦,什么都不写和%null%是有区别的:
如果条件中的值留空时,比如[字段]=   ,查询返回数据表的全部记录。
条件中的值为%Nul%时,比如[字段]=%NuI%,查询返回数据表中字段等于空的记录。
可以参考一下这篇帖子:
看完必恍然大悟的活字格内幕:十六,空值和%null%的区别
https://gcdn.grapecity.com.cn/showtopic-38474-1-1.html
(出处: 葡萄城开发者社区)



回复 使用道具 举报
罗耀斌
金牌服务用户   /  发表于:2024-11-13 16:32:55
板凳
Levi.Zhang 发表于 2024-11-13 16:14
大佬,这不是Bug呢,是活字格的一种策略哦,什么都不写和%null%是有区别的:
如果条件中的值留空时,比如[ ...

https://gcdn.grapecity.com.cn/showtopic-38474-1-1.html 我看是17年的,截图出来的表格查询 也没有查询策略这个选择现在全部都是有的,会不会是因为胡总说的支持null和空后,后面就有查询策略这个功能优化了 ,null或空 只要查询策略选择 全部记录就可以了,数据查询随便玩,玩坏了也不会影响系统数据,但修改数据不一样,是不是还是以查询策略为准会比较稳妥,如果数据修改错了(有可能几天后发现),这个时候业务因为数据错误可能生成的数据也不一样了,那后期报表数据处理起来就有的麻烦了
回复 使用道具 举报
Levi.Zhang
超级版主   /  发表于:2024-11-13 16:50:06
地板
明白,大佬,这边调查一下,有结果了第一时间告知您~
回复 使用道具 举报
罗耀斌
金牌服务用户   /  发表于:2024-11-13 17:16:16
5#
Levi.Zhang 发表于 2024-11-13 16:50
明白,大佬,这边调查一下,有结果了第一时间告知您~

好的谢谢老师,数据安全确实不是小事,对于系统来说修改基本都是有条件的,这块还是忘老师们费心下
回复 使用道具 举报
Levi.Zhang
超级版主   /  发表于:2024-11-13 17:38:35
6#
好的,大佬;

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