Foxtable(狐表)用户栏目专家坐堂 → 建议:这个是否可以视为一个bug?


  共有4608人关注过本帖树形打印复制链接

主题:建议:这个是否可以视为一个bug?

帅哥哟,离线,有人找我吗?
程兴刚
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
建议:这个是否可以视为一个bug?  发帖心情 Post By:2022/1/7 1:24:00 [只看该作者]

条件表达式使用not like 时,当该单元格没有内容时,not like 找不到该行,合成表达式代码如下:

drs = DataTables("通知消息").Select("通知类型 = '" & Value3s(n) & "' and 阅读权限 like '%" & yhID & "' and 已读状态 not like '%" & yhID & "%'")

这样可以得到结果:
drs = DataTables("通知消息").Select("通知类型 = '" & Value3s(n) & "' and 阅读权限 like '%" & yhID & "'")
去掉后面not like 那一段,却始终找不到符合条件的行,测试半天找到了问题,最终确定:使用not like 时,该字段不能为空,否则,视为不符合条件,这样问题就来了,该字段为空时,理应确定为符合not like的条件才对,现在要满足not like的条件,必须给单元格输入任意一个特殊字符则可以,希望贺老师改进一下,.Select再进行比较的时候,对not like条件值自动加上多个特殊字符组成的字符串来规避一下即可,有的单元格不一定全部会输入值,当然,目前还有一个解决办法,多增加一个条件,阅读权限 is null ,代码改成这样则可:

drs = DataTables("通知消息").Select("通知类型 = '" & Value3s(n) & "' and 阅读权限 like '%" & yhID & "' and (已读状态 is null or 已读状态 not like '%" & yhID & "%')")

还是建议将 空值视为 not like

谢谢!
[此贴子已经被作者于2022/1/7 1:26:33编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lgzhao
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:304 积分:2091 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2022/1/7 6:45:00 [只看该作者]

应该改进。like也有类似情形。

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110769 积分:563777 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/7 8:36:00 [只看该作者]

这个问题你们得找微软解决。数据库里like 、not like、in、 not in都不会处理空值。

自己另外加上空值的判断吧
drs = DataTables("通知消息").Select("通知类型 = '" & Value3s(n) & "' and 阅读权限 like '%" & yhID & "' and (已读状态 not like '%" & yhID & "%' or 已读状态  is null)")

 回到顶部
帅哥哟,离线,有人找我吗?
xndd
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:537 积分:4465 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2022/1/7 8:48:00 [只看该作者]

这应该是sql的问题

 回到顶部
帅哥哟,离线,有人找我吗?
temblar
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:313 积分:2913 威望:0 精华:0 注册:2012/7/20 16:04:00
  发帖心情 Post By:2022/1/7 10:22:00 [只看该作者]

哈哈  程版是包工头界玩代码最牛逼的

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2022/1/7 12:02:00 [只看该作者]

惭愧,高手如云,这个最字不敢当!
[此贴子已经被作者于2022/1/7 12:02:43编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2022/1/7 12:09:00 [只看该作者]

是啊,以前写的代码可能存在bug,因为大多数都输入了值,昨晚测试时该字段一个值没有,一开始以为是条件表达式错误,反复n遍后,输入几个符合not liKe的值再测试则发现这个问题了,过去没注意到,若不能改程序则在帮助中予以说明,好让大家避开这个坑!!

 回到顶部