后来听孟振兴部长说,何银花在项目开始前,会把数据库的各个表,在一个大纸上面都写好,详细标记出表之间的关系,把这些关系下功夫完全吃透。
当初,和国人对这个项目也是特别重视,生怕出问题。
但当他们得知光辉公司这边,把何银花放到项目中后,就宣布说,这个项目在光辉公司这边,肯定不会有问题了,只要我们和国这部分别出问题,项目就成功了。
叶奕凡一听,大为赞叹,这可真是“但使龙城飞将在,不教胡马渡阴山”的架势。
存储过程执行完,生成一些数据后,还要打印报表,这个报表可废了很大的劲,格式调起来太麻烦了,特别费时间。
叶奕凡在做这个项目的过程中,发现有问题的话,问其他人用处不大,他自己如果不会了,就只能问田晓峰,而田晓峰也同样如此。
所以这两个人之间的关系越来越近,以前中午和吴亦辉一起吃饭,现在他们三人一起。
现在吃饭的地点有进步了,不用非得食堂,公司附近的小餐馆也接受公司的饭票,他们随便到哪里吃都行。
有一次田晓峰叫他过去,有一个存储过程里的问题调试了许久解决不了。
代码大概是这样,
如果x等于那么就A,否则就B。
而这个x是从数据库中取的,当时赋值的时候,赋的就是。
这里的可不是指两个单引号本身,两个单引号是数据库里用于包含字符串用的。这时候两个并列的单引号就是指一个长度为零的字符串。
结果x明明就一个长度为零的字符串,但程序总是流向B。
田晓峰调了一上午没明白怎么回事。
叶奕凡坐下来看了一会儿,确实,程序总是往B走。
来回又调了很长时间,看着给数据库里赋值时的两个单引号,突然想起以前和潘志强的做项目时,那个关于向表里插入两个单引号时,潘志强的判断。
“实际上在Oracle里,这么赋值的话,就相当于赋了一个空。”
也就是说,当向数据库里赋值两个单引号时,它就已经是空了,那么x实际上就是空。
而空,和任何数值做比较,结果都是否定的。
空只能用一个函数来判断是否为空,也就是isNull.
在这里,只能用isNull(x)为真,则A,为假,则B。
按这个改了下代码再一试,果然成功了。
这个项目中,用到的数据库的知识太复杂,更多的时候,他俩还是要到论坛上去查,去问。
当时有个程序员之家论坛,数据库的模块里真有高手,有两个人,ID分别是“弱水三千”和“只取一瓢”,Oracle的知识真是丰富,基本什么问题都能回答。
两人在这个项目,数据库的水平急剧提高,VB也是越来越熟练。
最后开始吹牛了。
叶奕凡:“我编码的速度取决于打字的速度。”
田晓峰:“我编码的速度取决于复制粘贴的速度。”
项目到了中后期,一直在和国的人过来了。
一个和国的小老头,是客户,还有一个那个姓邓的,中方的总负责人。
还有个女同事,叫冯瑾玉,一直在那边同和国人一起做设计,在那边呆了很长时间了第一次回国。