Foxtable(狐表)用户栏目专家坐堂 → 不得不说的经历,花了几小时才解决的。


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

主题:不得不说的经历,花了几小时才解决的。

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


加好友 发短信
等级:五尾狐 帖子:1034 积分:7402 威望:0 精华:0 注册:2008/8/31 22:52:00
不得不说的经历,花了几小时才解决的。  发帖心情 Post By:2011/3/31 21:38:00 [只看该作者]

有这样一段代码:


  Dim drzxhspz As DataRow  
  Dim s7 = "PZRQN = " & drkhmx("年") & "And PZRQY = " & drkhmx("月") & " and PZRQR = " & drkhmx("日")
      s7 = s7 & "and PZDM = " & drkhmx("凭证编号") & "and FLXH = " & drkhmx("sys_序号") & "and PZLX = " & drkhmx("sys_凭证类型")
      s7 = s7 & "and JDFX = " & drkhmx("sys_借贷方向")& "and FLJE = " & drkhmx("sys_金额") & "And KMDM = & drkhmx("sys_kmdm")
  drzxhspz = DataTables("yg_专项核算凭证").find(s7)
  If drzxhspz IsNot Nothing Then

......

 

其中: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、有时减少一个条件,这样的问题就隐藏了,比如我随便减少一个条件。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/31 21:49:00 [只看该作者]

呵呵,不单单是你,经常有同学犯同样的错误,今天一个同学为此折腾很久了:

 

http://www.datasoft.com.cn/dispbbs.asp?boardid=2&Id=9337

 


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


加好友 发短信
等级:五尾狐 帖子:1034 积分:7402 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2011/3/31 21:58:00 [只看该作者]

关键是,这个九条件判断用了一段时间,没有发现问题。

 

本次也是只有三条记录不正常,其他都正常的。

 

而且要到sql查询表在数据库中的源表,来比对!

 

所以费了不少神。


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/3/31 23:37:00 [只看该作者]

呵呵,正常来说,科目代码(或编码)都不可能是整数型的,否则,排序就是个问题了。

 回到顶部