zoukankan      html  css  js  c++  java
  • vb.net机房收费系统——存储过程

    版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/xdd19910505/article/details/35574125

    一、使用背景

           机房收费系统结账的时候。需求是当选择一个用户。同一时候显示该用注冊、充值和退卡记录。这些数据来提供结账数据。而结账之后要同一时候更新卡、充值、退卡表三个表,假设直接写SQl语句的话会是非常复杂的。

    而这些需求可以封装为一个存储过程,点击结账之后仅仅须要传入參数运行存储过程就可以。

                

    二、存储过程简单介绍

          存储过程(Stored Procedure)是一组为了完毕特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出參数(假设该存储过程带有參数)来运行它。

    存储过程是数据库中的一个重要对象,不论什么一个设计良好的数据库应用程序都应该用到存储过程。

                

    三、存储过程的长处:

            1、封装事务规则。

            2、同意标准组件式编程

            3、可以实现较快的运行速度(批处理的T——SQL语句每次运行时都要进行编译和优化,存储过程是预编译)

            4、能过降低网络流量

            5、被作为一种安全机制来充分利用(避免非授权用户对数据的訪问)

                 

    四、在机房收费系统中的应用

           首先在数据库中建立存储过程

      

          语句:

    <span style="font-size:14px;">-- =============================================
    -- Author:		<许丹>
    -- Create date: <2014年6月28日>
    -- Description:	<结账同一时候更新卡表、充值表、退卡表>
    -- =============================================
    CREATE PROCEDURE  [dbo].[Proc_PayAccounts]   
    	-- Add the parameters for the stored procedure here
    	@strUserID char(6)   --用户ID	
    AS
    BEGIN
    	update Card_Info set BillStatus ='已结账' where UserID =@strUserID and BillStatus ='未结账'
    	update ReCharge_Info set Status ='已结账' where UserID =@strUserID and Status ='未结账'
    	update CancelCard_Info set BillStatus ='已结账' where UserID =@strUserID and BillStatus ='未结账'
    END</span>


    D层代码:

    <span style="font-size:14px;"> Public Function SettleAccounts(ByVal euser As Entity.UserInfo) As Integer Implements IDAL.IUser.SettleAccounts
    
            Dim helper As New Helper.SqlHelper
            Dim strSql As String = "Proc_PayAccounts"   '声明并实例化存储过程
            Dim sqlParams As SqlParameter() = {New SqlParameter("@strUserID", euser.UserID)} '声明并实例化參数数组
            Return helper.ExecAddDelUpdate(strSql, CommandType.StoredProcedure, sqlParams)  '运行并返回更新操作结果
        End Function</span>


    五、总结:

            1.存储过程目的在于可以方便的从系统表中查询信息或完毕于更新数据库表相关的管理任务。可以实现较快的运行速度假设某一操作包括大量T-SQL语句代码,分别被多次运行,那么存储过程要比批处理的运行速度快得多。

    由于存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化并给出终于被存在系统表中的存储计划。

    而批处理的T-SQL语句每次运行都须要预编译和优化,所以速度要慢一些。

            2.使用存储过程,就是对数据库进行优化,从而达到提高系统运行速度。存储过程仅仅在创造时进行编译。以后每次运行存储过程都不需再又一次编译,而一般SQL语句每运行一次就编译一次,所以使用存储过程可提高数据库运行速度。

           3.当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时)。可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作。假设用程序来完毕,就变成了一条条的 SQL 语句,可能要多次连接数据库。而换成存储,仅仅须要连接一次数据库就行了。
            4.存储过程可以反复使用,可降低数据库开发者的工作量。
            5.安全性高,可设定仅仅有某此用户才具有对指定存储过程的使用权。





查看全文
  • 相关阅读:
    webpack学习1-打包
    Cordova开发-2 自定义插件
    Vue项目开发1-项目的创建
    Cordova开发-2 具体插件的使用
    Cordova开发-1 项目的创建
    Mybatis的使用
    XAMPP设置上的问题
    七款Debug工具推荐:iOS
    sqlite内置函数
    CATransition常用动画及type
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10545971.html
  • Copyright © 2011-2022 走看看