以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 不得不说的经历,花了几小时才解决的。 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=9357) |
-- 作者:wcs -- 发布时间:2011/3/31 21:38:00 -- 不得不说的经历,花了几小时才解决的。 有这样一段代码:
......
其中:s7 中有9个判断条件,这类似的条件,在我的项目中存在很多,没出过问题,总能正确的找到我想要的记录。
可是,昨天突然不行了,100多行中,有三行是nothing,取不到值。
我仔细核对条件,把SQL数据源打开手工比对9个条件,都是满足的,可就是有三行nothing,我的系统中这样的9条件查找有多个,没有出过问题。
没有办法,我试着随便减少一个判断条件,这样就正常了可以查找到想要的记录了,可这不是我想要的结果。
无奈,我只有从数据类型方面检查: 1、DataTables("yg_专项核算凭证")是一个用sql的select查询出来的数据,我跟踪到数据库中的源表,一个个核对源表和目标表的9个字段数据类型是不是匹配。
2、结果发现源表KMDM字段同字符类型的,而我的drkhmx("sys_kmdm")是整数型的,实际上,这个字段中只会有 112203 这样的数据,看着是整数的。
3、没办法,我只有将目标表字段的数据类型改为字符型,再\'"&drkhmx("sys_kmdm")&"\'修改一下表达式,结果一试就正常了。
通过这个经历,我想说: 1、项目有时测试了,正常的运行了一段时间,并不代表你的代码就是正确的,比如昨天我就有三条记录不正常了。
2、条件表达式中,用于比较的字段的数据类型一定要一致。比如像 112203 这样的字符,系统大多数时候是会自动转换为整数的,但有时不会。
3、有时减少一个条件,这样的问题就隐藏了,比如我随便减少一个条件。 |
-- 作者:狐狸爸爸 -- 发布时间:2011/3/31 21:49:00 -- 呵呵,不单单是你,经常有同学犯同样的错误,今天一个同学为此折腾很久了:
http://www.datasoft.com.cn/dispbbs.asp?boardid=2&Id=9337
|
-- 作者:wcs -- 发布时间:2011/3/31 21:58:00 -- 关键是,这个九条件判断用了一段时间,没有发现问题。
本次也是只有三条记录不正常,其他都正常的。
而且要到sql查询表在数据库中的源表,来比对!
所以费了不少神。 |
-- 作者:mr725 -- 发布时间:2011/3/31 23:37:00 -- 呵呵,正常来说,科目代码(或编码)都不可能是整数型的,否则,排序就是个问题了。 |