环境:windows2003 r2 + pb7.0.3 10009 +oracle10.2
症状:一个收费记录的表,当查询记录超过4万条的时候,就出现每次查询的记录不一样。比例,我要查询收费时间在2008/01/01 到2009/11/25的记录,查询的时候,第一次可能查到2008/01/01到2009/04/10日的记录,第二次可能查到2008/01/01到2009/08/30日的记录。在其他的数据窗口中,查询出11万条记录都没有问题。
已经做过的测试:
1.在pb的database面板中,直接写select * from table_sfjl where sfsj >='2008/01/01' and sfsj <='2009/11/25' ,查询的结果正常,记录数是94986条。
2.在oracle的sqlplus中执行查询语句,也是94986条。
3.在datawindow中,把sql语句带上条件查询结果也是94986条。
4.这时就怀疑是不是窗口中的脚本有问题,把datawindow的retrieveStart,retrieveEnd,rowFocusChanged等事件都注释掉,还是得不到正确的结果。
5.这是灵光一闪,是不是datawindow 的事件:constructor中的:
this.modify("datawindow.zoom="+string(gi_zoom)) //根据窗口的分辨率对数据窗口进行放大或缩小。
把这句改为:this.modify("datawindow.zoom="+string(100))
查询结果正确!!
这个问题是不是PB的一个bug呢?