在SQL语句出错的时候,可以在“rs.open…”前面加上两个调试语句:
response.write sql
response.end
这里第1个语句负责将传递到SQL服务器的SQL语句写到客户端,第2个语句忽略该语句以下的代码,直接结束这个页面。在客户端得到这个SQL语句,将其粘贴到SQL查询分析器中执行,它会给出很详细的错误信息。
事实上可以将它写成如下的一个过程
Sub Debug(strltem)
response.write strltem
call CloseDB()
response.end
end Sub
引号总是一个非常令人头痛的东西。VB Script代码中的字符串要用引号引起宋,而很多的时候该字符串本身就含有引号,如session("…")、rs("…")和很多HTML属性都要用引号,这时要在引号里再加一个引号,有时还要加“&”,是很容易引起混乱的。所以在这些的时候应多加小心,在字符串中插入变量时可以对称地写引号和“&”符号,这样不容易出错。
在编写脚本的时候,应要在该缩进的地方有规律地缩进,这样才能逻辑清晰。总之风格是非常重要的。国外有一句话叫做“Elegent always pays off',(Thinking in C++,Second Edition),这是国外专家多年的经验总结。尤其在一个大的系统中,不规范的代码是一个很大的敌人。
应尽量将常用的功能编写成过程或函数,放在相关的包含文件里,到时候可以方便地调用。
在组织页面(模块)的时候,应尽量使得一个页面实现一个(或少数几个联系紧密的)功能,不应揉到一起。一般认为,一个超过150行的页面多少是有些问题的。每一个页面的命名也是有讲究的,原则上是采用“动词+名词”的方式。在WebOffice系统中,由于每个模块都是名词,所以里面的页面都只有动词,这样不至于使得页面的名称过长。
在组织子系统的时候,子系统对应于UML中的包,一个子系统是一个文件夹,应对其加以合理的命名。这样逻辑土非常清晰,整个系统结构有条不紊,并且能和所建立的模型很好地吻合。