起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3861|回复: 15

[处理中5] 发现平台存在一个小小BUG

  [复制链接]

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
发表于 2016-6-6 21:53:46 | 显示全部楼层 |阅读模式
如图:

QQ截图20160606214617.jpg
QQ截图20160606215148.jpg
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2016-6-6 21:59:57 | 显示全部楼层
并且还发现了一个问题,不知道算不算是BUG。
sql语句里写(if(a>b,name=a,name=:var-name))
这么写版主应该能看懂吧!就是把baas调用处的参数带到这里面。这么写会报错的,因为()里的变量,在sql语句解析的时候没有被带进来,而是原样输出了。版主可以本地实现一下,试试。个人感觉参数应该是在sql语句解释的时候被带到Sql语句里的。
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
发表于 2016-6-6 22:23:51 | 显示全部楼层
这是一个很难折衷的BUG,除非修改底层处理机制,目前的机制是将SQL语句按照关键字拆分成单个Token对象后,重新组装,但是拆分时,没有将空格或换行符保留,而是重新对每个分割单元做了组装,空格是否添加完全由单元本身决定,于是就出现了你这种情况,字符串替换本身是不能有空格在前后的,但是连续的2个字符串替换之间是否还有空格,它不知道,因为要替换的字符串内容本身没有解析过。
回复 支持 反对

使用道具 举报

64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
发表于 2016-6-6 22:25:50 | 显示全部楼层
这部分我正在写一个更好的,效率更高的处理方案,baas里面的处理是效率最最最低的,没有比那效率更低的了
回复 支持 反对

使用道具 举报

29

主题

130

帖子

306

积分

中级会员

Rank: 3Rank: 3

积分
306
QQ
发表于 2016-6-7 08:33:52 | 显示全部楼层
你这个错误的SQL怎么输出的、是自己哪里修改写SQL输出吗
回复 支持 反对

使用道具 举报

718

主题

2841

帖子

5657

积分

论坛元老

Rank: 8Rank: 8

积分
5657
QQ
发表于 2016-6-7 08:36:56 | 显示全部楼层
qldsrx 发表于 2016-6-6 22:25
这部分我正在写一个更好的,效率更高的处理方案,baas里面的处理是效率最最最低的,没有比那效率更低的了 ...

等大作出来
WEX5初学者,欢迎初学者交流
QQ:597558229
tel:15857336322
回复 支持 反对

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2016-6-7 08:49:57 | 显示全部楼层
qldsrx 发表于 2016-6-6 22:23
这是一个很难折衷的BUG,除非修改底层处理机制,目前的机制是将SQL语句按照关键字拆分成单个Token对象后, ...

你的分析很正确,这说明了一个问题,就是平台在拼装sql语句的时候存在bug
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2016-6-7 08:50:47 | 显示全部楼层
kisshexuxia 发表于 2016-6-7 08:33
你这个错误的SQL怎么输出的、是自己哪里修改写SQL输出吗

后台报错报出来的啊!
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

29

主题

130

帖子

306

积分

中级会员

Rank: 3Rank: 3

积分
306
QQ
发表于 2016-6-7 09:29:30 | 显示全部楼层
wgs7909 发表于 2016-6-7 08:50
后台报错报出来的啊!

我后台SQL报错只会出来部分SQL语句、然后都是????????
回复 支持 反对

使用道具 举报

64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
发表于 2016-6-7 11:54:19 | 显示全部楼层
其实它这个底层还有一个BUG,我之前提过,但是似乎没有在3.5预览版里修正:
http://bbs.wex5.com/forum.php?mod=viewthread&tid=92127

这是非常严重的BUG,比如MYSQL的列名上可以用`col-1`表示,将里面的减号转义,作为列名的一部分,但是baas底层不支持这种处理,不支持也罢了,还会直接导致程序进入到死循环中,线程无法结束。按照我的修复方案,至少能提示SQL语句分析失败,不会死循环。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-6-2 10:32 , Processed in 0.073630 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表