日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

机房收费系统中——存储过程中加入事务,实现学生注册

發布時間:2025/6/15 windows 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机房收费系统中——存储过程中加入事务,实现学生注册 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

需求介紹:

現在正在開發的機房收費系統,總得來說,是對學生上機進行收費管理(沒有要在學校開網吧的意思啊!為了學習面開發的)大體的功能是這樣的:學生上機,然后刷卡,下機的時候,再刷卡,然后通過對學生的上機時間收取相應的費用,同時,該系統還可以統計與維護學生的基本信息、上機記錄、學生注冊、充值、退卡等功能。 ? ? ?其中有一個功能是學生注冊,功能:注冊學生的基本信息,同時可以在該學生帳戶下存入一定的金額。

解決思路與辦法:

因為,要學生注冊信息的同時要對學生帳戶進行充值,所以說要涉及到兩個表的操作。一個是學生的基本信息表:student,還有一個是學生的充值記錄表:RechargeRecord。可以想到,如果學生注冊成功,那么,必須要向充值表中寫入相應的充值記錄,所以,我的解決辦法,是用事務來實現。因為事務是原子性,可以要么都做,要么都不做。就算是寫入到了學生的基本信息表,但是充值表中沒有寫入記錄,也是注冊不成功。 所以,我把事務寫成了存儲過程,讓應用程序來調用: 下面是我的存儲過程:
  • USE?[ChargeSystem]??
  • GO??
  • /******?對象:??StoredProcedure?[dbo].[StudentRegister]????腳本日期:?02/11/2012?14:30:08?******/??
  • SET?ANSI_NULLS?ON??
  • GO??
  • SET?QUOTED_IDENTIFIER?ON??
  • GO??
  • --?=============================================??
  • --?Author:??????<Author,,Name>??
  • --?Create?date:?<Create?Date,,>??
  • --?Description:?<Description,,>??
  • --?=============================================??
  • ALTER?PROCEDURE?[dbo].[StudentRegister]???
  • ????--?Add?the?parameters?for?the?stored?procedure?here??
  • ????@CardNO?varchar(10),??
  • ????@StudentNO?varchar(20),??
  • ????@StudentName?nvarchar(10),??
  • ????@Sex?nvarchar(2),??
  • ????@STClass?nchar(2),??
  • ????@Grade?nchar(3),??
  • ????@Specialty?nvarchar(50),??
  • ????@Amount?numeric(5,1),??
  • ????@Status?nvarchar(3),??
  • ????@UserType?nchar(4),??
  • ????@Remarks?nvarchar(50),??
  • ????@RechargeTime?datetime,??
  • ????@Teacher?nvarchar(50)??
  • AS??
  • BEGIN??
  • ????--?SET?NOCOUNT?ON?added?to?prevent?extra?result?sets?from??
  • ????--?interfering?with?SELECT?statements.??
  • ????SET?NOCOUNT?ON;??
  • ??
  • ????--?Insert?statements?for?procedure?here??
  • ????declare?@Transaction_name?varchar(32)??
  • ????select?@Transaction_name='my_transaction_register'??
  • ????begin?Transaction?@Transaction_name??
  • ????insert?into?students?values(@CardNO,@StudentNO,@StudentName,@Sex,@STClass,@Grade,@Specialty,@Amount,@Status,@UserType,@Remarks)??
  • ????insert?into?RechargeRecord?values(@CardNO,@StudentNO,@StudentName,@RechargeTime,@Amount,@Teacher)??
  • ????commit?transaction???
  • ????return?@@error??
  • END??

  • 其中用@@error來取得執行結果

    總結

    以上是生活随笔為你收集整理的机房收费系统中——存储过程中加入事务,实现学生注册的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。