- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
应用系统编程规范
第
第PAGE7页共NUMPAGES19页
【编程规范项目文档】
应用系统编程规范
XXXX公司
项目管理组
20XX年XX月
文档修订记录
修订日期
变更编号
变更描述
修订
方法
修订说明
修订人
修订方法:新增/修改/删除
目录
TOC\o"1-3"\h\z\u目录 3
1 引言 4
2 SQL编程规范 5
2.1 命名规范 5
2.2 一般书写规范 5
2.3 注释规范 5
2.4 SQL处理规范 5
2.5 错误处理规范 6
2.6 示例 6
3 C编程规范 8
3.1 头文件 8
3.1.1 命名规范 8
3.1.2 一般书写规范 8
3.2 注释规范 8
3.3 缩进规定 9
4 SHEEL和BAT编程规范 10
4.1 命名规范 10
4.2 注释规范 10
4.3 错误处理规范 10
引言
编程规范文档是描述各个应用系统在进行应用开发时需要遵守的规范。为了保证应用项目开发的规范性,提高开发质量,也为了便于今后的系统运行与维护,本文档是软件产品不可缺少的组成部分。本文档也是项目质量管理过程中的一项重要依据。
SQL编程规范
本规范针对SQL脚本文件和XML文件中SQL语句的编程规范。
命名规范
SQL脚本文件、表名、及字段等相关的命名规范参见QS-应用系统命名规范v1.0。
一般书写规范
SQL关键字统一使用全大写的方式。
SQL脚本中关键字和关键字对齐,字段名与字段名对齐,字段类型与类型对齐,以此类推。
SQL语句中主要关键字对齐,条件等内容换行折行时,字段名与字段名对齐。
注释规范
建表语句上方必须注释表名。字段下方必须注释字段名称。
SQL语句必须在上方注释本语句的用途。
定义SQL语句时,每条语句之间空一行进行书写。
SQL处理规范
库表的键值不允许为NULL,也不允许设置DEFAULT值。
表定义时,对于定长的字符型字段使用CHAR(N)类型,大数据的字段使用CLOB类型。
应用程序必须以静态SQL的方式设计和编写。
为了维护的方便及SQL执行效率,应该尽量使SQL语句简化,去掉不必要的COLUMNS和ORDERBY,GROUPBY等语句。不允许写过于复杂的SQL语句,如果业务处理需要,可根据需要用函数来实现。
SQL语句尽量不使用select*查询数据,如果查询字段较少,则显示的写出需要查询的字段名,以便维护和提高性能。
索引的应用:
数据库操作坚持使用索引,优先使用键值。
如果是可用索引的,则所写条件表达式必须引用索引,注意语句的写法、顺序等。
如果可用多个索引,则应选择效率较高的索引(如CLUSTERINDEX)。
如果不能用索引,考虑设计是否需要增加索引定义,并要分析建索引前后的利弊。
不能用索引时,原则上应先写数据搜索范围较窄的表达式语句,然后再写数据搜索范围较宽的语句,以减少执行时判断的次数。
数据库操作的规范:
对相同表、相同条件的操作在一条语句中完成,尽量减少数据库的访问次数。
检查循环操作的有效性,防止在多重循环中访问数据库。
在只读操作语句使用forreadonly子句。
为防止交易的并发更新,需要在更新操作前的查询语句中使用forupdate子句,DB2的隔离级别分为UR/CS/RS/RR四个级别,在满足加锁要求的前提下需要尽量避免发生死锁,所以应用开发建议使用RS级进行加锁处理。
错误处理规范
XML中通过组件的返回值判断SQL语句的执行结果。对返回码的基本判断,应紧跟于SQL命令之后,并根据判断的结果,执行相应的出错信息处理。
示例
SQL脚本:
DROPTABLEstpBnkLst;
--==============================================================
--TABLE:stpBnkLst银行登记表
--==============================================================
CREATETABLEstpBnkLst
(
BnkCodCHAR(10)notnull,
--银行编码
PSysIdCHAR(20)notnull,
--商户编号
BnkNamCHAR(60)notnull,
--银行名称
PSysNm
文档评论(0)