2024-09
12

不完整的错

By xrspook @ 8:09:45 归类于: 烂日记

上一篇说到了数据汇总的问题。这个周一我就是按照上周五设定的那个步骤去做。在做的过程中,几乎没有发现什么问题,但是当我做完所有,一个个表格验证的时候却发现不知道为什么有些表格 SQL抓取的数据不完整,VBA从原始表格筛选、抓取的数据没有问题,但关键是SQL从本地的文件里提取到的那些数据不完成。第一次发现这个问题的时候,我看到的是为什么汇总数不一致。当我把SQL回退到第1步的时候发现第1步获取的数据就已经不完整。明明有50行数据,实际上只能提取到42行,重复多次依然是那个效果,但是偶然当我把文件关掉重开以后又好了。所以这个有时发生,有时不发生,到底是什么情况呢?当我打开VBA文件,一个一个测试的时候,发现前几个还好,后面就会出状况,可能是数据不完整,也可能是弹出一些莫名其妙的错误,但只要你把所有Excel都关掉,再重新打开又没有问题了,但是在测试几个以后,又会出现这样这样那样的状况。用VBA+ADO+SQL整理输出数据我已经实施过很多遍,之前从来没有遇到过这种神奇的状况。最后当我打开VBA脚本,无意之间拉到最后,居然发现cnn没有close,也没有初始化。cnn是个非常牛逼的东西,但是那个玩意也要耗费巨大的资源,在我出现数据状况的时候,我没有观察过我电脑的性能到底如何了,会不会CPU或者内存甚至二者都有点状况了。因为一次又一次的验证数据就意味着我得一次又一次调用cnn,光是打开又不关闭,最后就会出现奇奇怪怪的事情。当我把所有脚本都加上了结尾以后。从头到尾10个表以上的数据,一次性搞完,期间不会出现状况,所以多么神经质的行为才会导致了这种弱智事情呢?以前我倒真的从未试过这样。有过这样的经历以后就让我明白到cnn打开和关闭都必须是一个闭环,在一个宏里就得实现到位。如果某个宏被卡住了,半路停在那里,估计那个cnn是不正常的,当我又再次启动其它,只会让错误不断积累,最终导致崩溃,又或者是得不到我想要的东西。

写程序可以很快,但是调试却非常耗时间。这大概是所有码农都必须面对的事情,但实际上更多的人只顾写,只顾实现,而不考虑全盘,不尽可能地用全面数据测试,最终的结果就是使用的时候出现各种各样的未知情况。我不知道其他人到底是如何调试的,反正我真觉得调试的过程比写脚本更费神,因为要考虑所有的情况,哪怕某些条件可能非常极端,几乎不会碰到,但即便那样,一个健壮的程序应该依然能捕捉到那个错误,然后给出对应的反馈。比如我抓取不到数据了,我就应该弹框告诉人家我抓不到,因为有些操作的抓取数据以后才能进行,所以既然能判断抓不到数据,后面的也就不用继续了。

调试程序是一个很磨人的过程,这个过程重复多了,人自然而然就会向完美靠拢,即便我们一定不能成为完美的那个。

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress