蛙蛙池塘

没有公主的蛙蛙王子

胡浩ID:onlytiancai
122682次访问,排名673好友1人,关注者1
onlytiancai的文章
原创 93 篇
翻译 0 篇
转载 22 篇
评论 117 篇
蛙蛙王子的公告
残荷听雨,梨花飞雪,落英缤纷时节。晓来谁染枫林醉?点点都是离人泪
活着,就是快乐!自信,就是美丽! 有人爱,就是幸福。

但愿野百合也有春天

最近评论
hdnero:wow power leveling
hdnero:wow power leveling
lindahou:THANK YOU VERY MUCH
mylittledog:如果我要添加http://172.20.50.11呢?
hm8030:问题2:请教:怎样让页面局部无刷新更新数据呀,xmlhttp可以发送recordset吗?

问题是这样的:我的首页上有好几处显示数据的表格,每个表示对应着服务器的一个记录集(recordset),我想让其中几个表格能够每隔30秒种更新一下数据,前提是网页的其它部分,比如说广告,图片等不用更新。
整个页面的无刷新更新和只更新某个字符串我已经做到了,现在我是想让一……
文章分类
收藏
    相册
    友情博客
    Anatoly 姐姐的博客
    Bob Beauchemin姐姐的博客
    chnking姐姐的博客
    cocosoft姐姐的博客
    donet姐姐的博客
    Eric/xin姐姐的博客
    ilqtj姐姐的博客
    JAVA姐姐的博客
    Nathan Dunlap姐姐的博客
    Sinoprise Studios姐姐的博客
    千山一鸟的博客
    土人姐姐的博客
    微软姐姐的博客
    思归姐姐的博客
    木子姐姐的博客
    笨笨姐姐的博客
    阿好姐姐的博客
    飞信美眉 飞信交友
    龙卷风姐姐的博客
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 蛙蛙推荐:一个公司的数据库开发规范.doc收藏

    新一篇: 蛙蛙推荐:asp.net实现分组全选部分复选框 | 旧一篇: 蛙蛙推荐:匈牙利命名规范.doc

    我把我们公司的盗给你,呵呵

     

    2     命名规则

    2.1   表名

    XXX相关表以r_作为前缀,YYY相关表以t_作为前缀。如r_acc t_bcc

    后台表名尽量与前台表名相同,后台独有的表应以_b作为后缀。如r_gggd_b

    命名应尽量反映存储的数据内容。

    2.2   视图名

    视图以v_作为前缀。由于前台无视图,故不需加_b

    命名应尽量体现各视图的功能。

    2.3   触发器名

           触发器名为相应的表名加上后缀,Insert触发器加'_i'Delete触发器加'_d'Update触发器加'_u',如:r_bch_ir_bch_dr_bch_u

    2.4   存储过程名

    存储过程应以'sp_'开头,后续部分主要以动宾形式构成,并用下划线分割各个组成部分。如增加BSC机架的DRT单板的存储过程为'sp_ins_board_drt'

    2.5   变量名

    变量名采用小写,若属于词组形式,用下划线分隔每个单词,如@my_err_no

    2.6   命名中其他注意事项

    以上命名都不得超过30个字符的系统限制。

    变量名的长度限制为29(不包括标识字符@)。

    数据对象、变量的命名都采用英文字符。禁止使用中文命名。

     

    3     编程结构和描述

    SQL SERVER系统中,一个批处理是从客户传给服务器的一个完整的包,可以包含若干条SQL语句。批处理中的语句是作为一组去进行语法分析、编译和执行的。触发器、存储过程等数据对象则是将批处理永久化的方法。

    3.1   注释

    注释可以包含在批处理中。在触发器、存储过程中包含描述性注释将大大增加文本的可读性和可维护性。本规范建议:

    1  注释以英文为主。

        实际应用中,发现以中文注释的SQL语句版本在英文环境中不可用。为避免后续版本执行过程中发生某些异常错误,建议使用英文注释。

    2  注释尽可能详细、全面。

    创建每一数据对象前,应具体描述该对象的功能和用途。

    传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。

    3  注释语法包含两种情况:单行注释、多行注释

    单行注释:注释前有两个连字符(--),最后以行尾序列(CR-LF)结束。一般,对变量、条件子句可以采用该类注释。

    多行注释:符号/**/之间的内容为注释内容。对某项完整的操作建议使用该类注释。

    4  注释简洁,同时应描述清晰。

    3.2   函数注释:

    编写函数文本--如触发器、存储过程以及其他数据对象--时,必须为每个函数增加适当注释。该注释以多行注释为主,主要结构如下:

    /************************************************************************

    *name        :               --函数名

    *function    :               --函数功能

    *input       :               --输入参数

    *output      :               --输出参数

    *author      :               --作者

    *CreateDate  :                    --创建时间

    *UpdateDate  :               --函数更改信息(包括作者、时间、更改内容等)

    *************************************************************************/

    CREATE PROCEDURE sp_xxx

    3.3   条件执行语句ifelse

    条件语句块(statenemt block,以 beginend为边界)仅在if子句的条件为真时才被执行。为提高代码的可读性,建议嵌套不多于5层。还有,当嵌套层次太多时,应该考虑是否可以使用case语句。

    3.4   重复执行while和跳转语句goto

    需要多次执行的语句,可以使用while结构。其中,控制while循环的条件在任何处理开始之前需要先执行一次。循环体中的保留字break无条件的退出while循环,然后继续处理后续语句;保留字continue重新计算while条件,如果条件为真,则从循环开始处重新执行各语句。

    使用跳转语句goto和标签label也可以方便地实现循环和其他更灵活的操作。SQL SERVER仅具有单通道语法分析器,因此不能解析对尚未创建的对象所做的前向参考。换言之,跳转到某标签的后续语句应该是可执行的(如不存在可能尚未创建的数据对象)。

    3.5   书写格式

    数据库服务器端的触发器和存储过程是一类特殊的文本,为方便开发和维护,提高代码的易读性和可维护性。规范建议按照分级缩进格式编写该文本。

    顺序执行的各命令位于同一级;条件语句块(statenemt block,以 beginend为边界)位于下一级,类推。

    SQL语句是该文本的主体。为适应某些教复杂的用户需求,SQL语句可能比较庞大。为方便阅读和维护,规范建议按照SQL语句中系统保留字的关键程度再划分为三级。具体分级请参照下表。其中,非系统保留字(如字段名、数据表名、标点符号)相对本级保留字再缩进一级。多个连续的非保留字可以分行书写,也可以写在同一行。当WHERE包含的条件子句教复杂时,应该每行只写一个条件分句,并为重要的条件字句填写单行注释。

    在保证基本缩进格式的前提下,可以通过对齐某些重要关键字(如条件关键字ANDOR,符号 = <> 等)来进一步提高文本的易读性和可维护性。

    相邻两级的缩进量为10个空格。这也是ISQL编辑器默认的文本缩进量。另外,在ISQL编辑器中,一个TAB键也相当于10个空格。

     

    注:按照功能,四类SQL语句(SELECTINSERTUPDATEDELETE)的关键字可以划分为三类:主关键字、次关键字、一般关键字。如下表所示:

    主关键字       次关键字       一般关键字

    SELECTINSERT INTOUPDATEDELETE        FROMWHEREVALUESINSERTSELECTFROM语句中的SELECTFROM       ANDORBETWEENINLIKE

     

     

    3.6   字体

    系统保留字应大写,包括系统公共变量等。其他字符(如用户自定义变量、用户自定义数据对象名)小写。

    需要特殊强调的部分可以大写。

    一条完整注释语句的首字符应大写。对某变量、某条件字句的注释可以全部使用小写。

     

    通过下一节中生成表r_a的删除触发器的实例可以部分说明对象命名、注释、基本书写格式和字符大小写方面的一些注意事项。

     

    4     触发器编程规范

    4.1   范例

    下面通过一个例子,说明触发器编程中应遵守的规范:

     

    /* delete related r_a according to deleted table */

    CREATE TRIGGER r_a_d ON r_a

          FOR DELETE

    AS

    IF @@ROWCOUNT = 0 -no rows deleted

              RETURN

     

    /* delete r_b table related to deleted table */

    DELETE r_b

              FROM r_b b, deleted d

              WHERE b.id=d.id

     

    IF @@ERROR != 0

        BEGIN

                     RAISERROR("Error occurred deleting related records", 16, 1)

                     ROLLBACK TRAN

           END

     

    RETURN

     

           作以下几点说明:

    1  检查是否有行被修改。注意:不论数据是否被修改,触发器都会引发,执行情况取决于T-SQL语句的执行,而和任何潜在的where子句是否执行无关。

    2  因为被删除行在该表中不再可用,所以应在被删除的表中查看。

    3  检查T-SQL语句的返回代码,以捕获任何出错条件。

    4.2   事务过程中的触发器

    1  触发器内的rollback将所有工作返回至最外层的begin tran,完成触发器内的处理并异常终止当前的批处理。

    2  不可以从触发器内部返回至某个已命名的事务过程,这将产生运行错误,挂起所有工作并终止批处理。

    5     存储过程编程规范

    5.1   带有参数的执行

    在执行存储过程时,可以通过名字来制定参数,这样可以用任何顺序传递参数,而且自动起到注释的作用,因此建议编程时使用这种方法。

    5.2   缺省参数值

    把参数的缺省值定为null,这是捕获在过程内调用存储过程所产生的错误的常用方法,不应让标准服务器消息报告参数丢失。在给定缺省之后,可以校验该缺省值并在存储过程内采取措施。

    注意,当附值SELECT语句不返回行时,局部变量将保持在SELECT语句执行之前所具有的值。建议使用系统提供的某些全局变量(如@@ROWCOUNT)检测SELECT返回的结果。

    5.3   返回值

    每个存储过程自动返回一个整数型的状态值:成功完成时返回0,而返回-1~-99表示SQL Server检测到了错误。以下为SQL Server系统常用的返回状态码:

               含义

        0            Procedure was executed successfully

      ?-1             Object missing

      ?-2             Datatype error occurred

      ?-3             Process was chosen as deadlock victim

     ? -4              Permission error occurred

      ?-5             Syntax error occurred

     ? -6              Miscellaneous user error occurred

      ?-7             Resource error, such as out of space, occurred

     ? -8              Non-fatal internal problem encountered

      ?-9             System limit was reached

    ??-10             Fatal internal inconsistency occurred

    ??-11              Fatal internal inconsistency occurred

    ??-12             Table or index is corrupt

    ??-13             Database is corrupt

                    ?-14              Hardware error occurred

           在程序中,用return语句可指定大于0或小于-99的返回值,调用程序可以设置局部变量接收和检查返回状态。

    5.4   存储过程和事务处理

    如果事务处理在存储过程返回时的嵌套层次与执行时的层次不同,SQL Server会显示信息提示事务处理嵌套失控。因为存储过程并不异常终止该批处理,在执行和确认随后的语句时,过程内的rollback tran 会导致数据完整性损失。

    在编写存储过程时,应遵守以下原则:

    1  过程对@@trancount应无净改变。

    2  仅当存储过程发出begin tran语句时,才发出rollback tran

    5.5   其他注意事项

    存储过程应该坚实可靠的,因为它们是驻留在服务器中,被频繁使用的。应仔细检查参数的有效性,并在有问题时返回出错信息。应确保参数的数据类型和被比较的栏的数据类型匹配,从而避免数据类型匹配错误。在每个SQL语句之后要检查@@error

     

    6     数据对象的国际化

    6.1   关于数据对象的命名

    数据对象和变量的命名一律采用英文字符。禁止使用中文命名。其他命名注意事项和规范请参考2命名规则。

    6.2   关于RAISERROR

    SQL SERVER 系统的RAISERROR命令能够把某个出错情况返回给调用过程,这对说明调用过程的执行情况很有必要;同时可以部分避免客户端的冗余操作。另外,结合系统存储过程sp_addmessagesp_dropmessage可以方便实现数据对象在SQL SERVER端的国际化。

    SQL SERVERMASTER数据库中有错误信息数据表sysmessages,专门用于存储系

    发表于 @ 2004年11月15日 13:18:00|评论(loading...)|编辑

    新一篇: 蛙蛙推荐:asp.net实现分组全选部分复选框 | 旧一篇: 蛙蛙推荐:匈牙利命名规范.doc

    评论

    #怪豆世界 发表于2005-01-04 21:56:00  IP:
    TrackBack来自《一个公司的数据库开发规范》

    Ping Back来自:blog.csdn.net
    #果果 发表于2004-11-19 10:08:00  IP: 219.133.16.*
    太喜歡了,能不能更好點,哈哈,我是不是有點貪心!
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 蛙蛙王子