自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

機(jī)房重構(gòu)——存儲過程當(dāng)媒人

數(shù)據(jù)庫 SQL Server
以下是筆者親眼所見的機(jī)房重構(gòu)帥小伙(簡稱重構(gòu)),借助存儲過程媒人(簡稱存儲)與數(shù)據(jù)庫大美女(簡稱:庫)交往的經(jīng)歷,和大家分享一下。

以下是本人親眼所見的機(jī)房重構(gòu)帥小伙(簡稱重構(gòu)),借助存儲過程媒人(簡稱存儲)與數(shù)據(jù)庫大美女(簡稱:庫)交往的經(jīng)歷,和大家分享一下。

那是一個(gè)風(fēng)和日麗的白天,重構(gòu)帥小伙獨(dú)自一人走在處處飄香的初夏的校園中,他一直在思考,如何與庫美女更容易的交往呢?以前重構(gòu)去找?guī)烀琅臅r(shí)候總是需要先打一個(gè)電話(鏈接一個(gè)表),再問問庫美女在哪里(再鏈接一個(gè)表),然后才能去找?guī)烀琅?向兩個(gè)表中存入數(shù)據(jù));重構(gòu)絞盡腦汁終于想出了一個(gè)辦法, 他通過手機(jī)中的GPS(存儲過程)直接定位庫美女的位置,然后突然給庫美女一個(gè)驚喜,這樣一來二去,他倆終于***走在了一起。

一、存儲媒人優(yōu)點(diǎn):

1.存儲過程的能力大大增強(qiáng)了SQL語言的功能和靈活性。

2.可保證數(shù)據(jù)的安全性和完整性。

3. 在運(yùn)行存儲過程前,數(shù)據(jù)庫已對其進(jìn)行了語法和句法分析,并給出了優(yōu)化執(zhí)行方案。

4.可以降低網(wǎng)絡(luò)的通信量。

5.使體現(xiàn)企業(yè)規(guī)則的運(yùn)算程序放入數(shù)據(jù)庫服務(wù)器中集中控制,當(dāng)企業(yè)規(guī)則發(fā)生變化時(shí)在服務(wù)器中改變存儲過程即可,無須修改任何應(yīng)用程序。

二、存儲媒人缺點(diǎn):

1.調(diào)試麻煩。

2.移植問題。

3.重新編譯問題。

4.大量使用維護(hù)麻煩。

三、示例:

以下是重構(gòu)注冊中的存儲過程:基本原理是先將涉及的表中的所有字段寫出來(方便D層調(diào)用),再將每個(gè)表獨(dú)立出來并將字段也寫出來,***通過判斷是否需要同時(shí)向三個(gè)表中存入信息,要么不存入,要么存入。

  1. <span style="font-family:SimSun;font-size:24px;">-- ============================================= 
  2. -- Author:        <馬康> 
  3. -- Create date: <2015-4-26> 
  4. -- Description:    <存儲過程+事務(wù)實(shí)現(xiàn)學(xué)生注冊卡號,涉及到Card_Info、Student_Info、ReCharge_Info表> 
  5. -- ============================================= 
  6. ALTER procedure [dbo].[PROC_AddCard] 
  7. @CardID char(10),@Cash char(10),@Status char(10),@Creator char(10),@StudentID char(10), 
  8. @StudentName char(10),@Sex char(10),@Department char(10),@Grade char(10),@IClass char(10),@OnDate char(10), 
  9. @OnTime char(10),@Explain char(10),@AddCash char(10),@IDate char(10),@Time char(10) 
  10. AS 
  11. BEGIN 
  12. declare @Err1 int,@Err2 int,@Err3 int 
  13. begin transaction 
  14. INSERT into Card_Info(CardID,Cash,Status,Creator)VALUES(@CardID,@Cash,@Status,@Creator) 
  15. set @Err1=@@ERROR 
  16. INSERT into Student_Info(StudentID,CardID,StudentName,Sex,Department,Grade,IClass,OnDate,OnTime,Explain,Status,Creator)VALUES(@StudentID,@CardID,@StudentName,@Sex,@Department,@Grade,@IClass,@OnDate,@OnTime,@Explain,@Status,@Creator) 
  17. set @Err2=@@ERROR 
  18. INSERT into ReCharge_Info(CardID,StudentID,AddCash,IDate,Time,Creator,Status)VALUES(@CardID,@StudentID,@AddCash,@IDate,@Time,@Creator,@Status) 
  19. set @Err3=@@ERROR 
  20. if @Err1=0 and @Err2=0 and @Err3=0 
  21.     COMMIT TRANSACTION 
  22. else 
  23.     ROLLBACK TRANSACTION 
  24. end</span> 

注意:1.***行中的ALTER是修改,如果你要是創(chuàng)建的話,應(yīng)該改成:CREATE。

2.如果表中有自增的標(biāo)識字段,不需要在這里填寫。

3.主要是程序?qū)嶓w層中的屬性需要與表中的屬性統(tǒng)一。

下面是我D層中修改的一些代碼:

  1. <span style="font-family:SimSun;font-size:24px;">        Dim sql As String = "PROC_AddCard"  '存儲過程名 
  2.         Dim sqlparams As SqlParameter() = {New SqlParameter("@StudentID", student.StudentID), 
  3.                                            New SqlParameter("@StudentName", student.StudentName), 
  4.                                            New SqlParameter("@Sex", student.Sex), 
  5.                                            New SqlParameter("@Department", student.Department), 
  6.                                            New SqlParameter("@Grade", student.Grade), 
  7.                                            New SqlParameter("@IClass", student.IClass), 
  8.                                            New SqlParameter("@OnDate", student.OnDate), 
  9.                                            New SqlParameter("@OnTime", student.OnTime), 
  10.                                            New SqlParameter("@Explain", student.Explain), 
  11.                                            New SqlParameter("@Status", student.Status), 
  12.                                            New SqlParameter("@Creator", student.Creator), 
  13.                                            New SqlParameter("@CardID", card.CardID), 
  14.                                            New SqlParameter("@Cash", card.Cash), 
  15.                                            New SqlParameter("@AddCash", ReCharge.AddCash), 
  16.                                            New SqlParameter("@IDate", ReCharge.IDate), 
  17.                                            New SqlParameter("@Time", ReCharge.Time)}</span> 

四、總結(jié):

最近學(xué)習(xí)了存儲過程,給我做機(jī)房收費(fèi)系統(tǒng)帶來了很大的方便,也讓我進(jìn)一步了解到了SQL Server的強(qiáng)大,更加增加了自己求知的欲望與堅(jiān)強(qiáng)的走下去的信心,希望筆者的這些正能量能夠傳遞給所有的讀者。

博文出處:http://blog.csdn.net/makang456/article/details/45362379#comments

責(zé)任編輯:Ophira 來源: 馬康的博客
相關(guān)推薦

2016-01-14 10:35:35

微模塊機(jī)房華為

2017-05-16 14:38:25

2020-11-26 10:33:44

MySQL存儲函數(shù)

2010-07-15 12:38:14

SQL Server存

2009-09-17 10:04:32

LINQ存儲過程

2021-10-15 06:43:11

數(shù)據(jù)庫存儲過程

2009-08-04 10:20:22

C#源碼存儲過程

2019-01-15 10:49:57

傳統(tǒng)存儲私有云塊存儲

2010-12-23 13:35:05

面向過程

2015-11-19 00:11:12

2009-09-13 19:24:33

LINQ存儲過程

2009-09-15 11:08:01

LinQ調(diào)用存儲過程

2010-09-13 13:12:28

sqlserver分頁

2010-11-29 09:45:30

Sybase分頁

2010-04-16 10:11:20

Oracle存儲過程

2010-11-19 11:32:25

Oracle存儲過程

2010-10-09 17:08:15

MySQL存儲過程

2009-07-08 17:17:16

JDBC調(diào)用存儲過程

2010-10-29 16:22:37

SQL存儲過程

2020-11-02 13:24:49

MySQL數(shù)據(jù)庫存儲
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號