找回密码
 立即注册

QQ登录

只需一步,快速开始

阿Q7

注册会员

7

主题

22

帖子

159

积分

注册会员

积分
159
阿Q7
注册会员   /  发表于:2024-10-25 17:24  /   查看:444  /  回复:8

测试服务端命令中传参为空时,sql语句正常

测试服务端命令中传参为逗号时,sql语句中的条件就没了,但是数据表中的记录全被修改了




本帖子中包含更多资源

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

x

8 个回复

倒序浏览
Erik.Xue讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2024-10-28 09:43:37
沙发
大佬,可以参考下这个帖子:

【9.0.4】怎么会生成where(1=0 and ....)这样的查询??
https://gcdn.grapecity.com.cn/showtopic-179867-1-1.html
(出处: 葡萄城开发者社区)
回复 使用道具 举报
Erik.Xue讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2024-10-28 13:34:20
板凳
你的版本是多少?我在10.0.5.0版本下测试null,会报错:



本帖子中包含更多资源

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

x
回复 使用道具 举报
阿Q7
注册会员   /  发表于:2024-10-28 13:58:54
地板
本帖最后由 阿Q7 于 2024-10-28 15:51 编辑
Erik.Xue 发表于 2024-10-28 13:34
你的版本是多少?我在10.0.5.0版本下测试null,会报错:

我的版本也是10.0.5.0,我的没报错

本帖子中包含更多资源

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

x
回复 使用道具 举报
阿Q7
注册会员   /  发表于:2024-10-28 15:50:33
5#
阿Q7 发表于 2024-10-28 13:58
我的版本也是10.0.5.0,我的没报错

D:\测试.png
回复 使用道具 举报
Levi.Zhang
超级版主   /  发表于:2024-10-28 16:24:19
6#
大佬,这边用您代码复现了下,确实没有复现出来:

看到您的截图,这边对代码做了些修改,复现出来为null的操作:

这条逻辑是正确的:条件中的值留空时,比如[字段]= ,查询返回数据表的全部记录


第二条参数设为"," 执行逻辑为:

执行逻辑也是对的,跟上述逻辑一致

大佬,您是想表述两条执行命令 SQL操作中的:1=0  不显示的问题对吧?


本帖子中包含更多资源

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

x
回复 使用道具 举报
小萝卜David
金牌服务用户   /  发表于:2024-10-28 18:55:44
7#
本帖最后由 小萝卜David 于 2024-10-28 18:58 编辑

复现步骤:

1.原始数据,为

2.运行服务端命令,参数输入英文逗号,

期望:
运行后数据仍为原始数据,数据被修改;(当传入,的时候,按理来说ID为空,不应该更新数据)

实际:
所有数据被错误的修改为弃用。




本帖子中包含更多资源

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

x
回复 使用道具 举报
小萝卜David
金牌服务用户   /  发表于:2024-10-28 19:01:05
8#
这个bug的重点在于传入逗号的时候  数据不应该被更新  而实际是把所有数据更新了。
这个问题导致我们有一张表的数据完全丢失了。(虽然最后通过备份找回了。)
回复 使用道具 举报
Erik.Xue讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2024-10-29 13:43:31
9#
调查确认,这个问题和逗号分隔无关,在里面,传入的条件筛选,按逗号分隔之后,是空,然后字段和空进行比较,所有数据都符合。


这个%NULL%是查值为空的数据,所以这是活字格的策略,一直是这样的策略,需要把参数处理一下,再查询,以避免帖子中出现不期望的结果。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部