程序员修炼之路 第六十章 浮沉随浪

作者:飘飘叶书名:程序员修炼之路更新时间:2021/06/19 02:33字数:2344

  

后来听孟振兴部长说,何银花在项目开始前,会把数据库的各个表,在一个大纸上面都写好,详细标记出表之间的关系,把这些关系下功夫完全吃透。

当初,和国人对这个项目也是特别重视,生怕出问题。

但当他们得知光辉公司这边,把何银花放到项目中后,就宣布说,这个项目在光辉公司这边,肯定不会有问题了,只要我们和国这部分别出问题,项目就成功了。

叶奕凡一听,大为赞叹,这可真是“但使龙城飞将在,不教胡马渡阴山”的架势。

存储过程执行完,生成一些数据后,还要打印报表,这个报表可废了很大的劲,格式调起来太麻烦了,特别费时间。

叶奕凡在做这个项目的过程中,发现有问题的话,问其他人用处不大,他自己如果不会了,就只能问田晓峰,而田晓峰也同样如此。

所以这两个人之间的关系越来越近,以前中午和吴亦辉一起吃饭,现在他们三人一起。

现在吃饭的地点有进步了,不用非得食堂,公司附近的小餐馆也接受公司的饭票,他们随便到哪里吃都行。

有一次田晓峰叫他过去,有一个存储过程里的问题调试了许久解决不了。

代码大概是这样,

如果x等于''那么就A,否则就B。

而这个x是从数据库中取的,当时赋值的时候,赋的就是''。

这里的''可不是指两个单引号本身,两个单引号是数据库里用于包含字符串用的。这时候两个并列的单引号就是指一个长度为零的字符串。

结果x明明就一个长度为零的字符串,但程序总是流向B。

田晓峰调了一上午没明白怎么回事。

叶奕凡坐下来看了一会儿,确实,程序总是往B走。

来回又调了很长时间,看着给数据库里赋值时的两个单引号,突然想起以前和潘志强的做项目时,那个关于向表里插入两个单引号时,潘志强的判断。

“实际上在Oracle里,这么赋值的话,就相当于赋了一个空。”

也就是说,当向数据库里赋值两个单引号时,它就已经是空了,那么x实际上就是空。

而空,和任何数值做比较,结果都是否定的。

空只能用一个函数来判断是否为空,也就是isNull.

在这里,只能用isNull(x)为真,则A,为假,则B。

按这个改了下代码再一试,果然成功了。

这个项目中,用到的数据库的知识太复杂,更多的时候,他俩还是要到论坛上去查,去问。

当时有个程序员之家论坛,数据库的模块里真有高手,有两个人,ID分别是“弱水三千”和“只取一瓢”,Oracle的知识真是丰富,基本什么问题都能回答。

两人在这个项目,数据库的水平急剧提高,VB也是越来越熟练。

最后开始吹牛了。

叶奕凡:“我编码的速度取决于打字的速度。”

田晓峰:“我编码的速度取决于复制粘贴的速度。”

项目到了中后期,一直在和国的人过来了。