存儲(chǔ)過程在人事管理子系統(tǒng)中的應(yīng)用
發(fā)布時(shí)間:2019-08-14 來源: 人生感悟 點(diǎn)擊:
[摘 要]分析了存儲(chǔ)過程的特性和優(yōu)勢(shì),總結(jié)出存儲(chǔ)過程將提高數(shù)據(jù)庫管理系統(tǒng)的效率和性能,在人事管理子系統(tǒng)中利用存儲(chǔ)過程實(shí)現(xiàn)復(fù)雜報(bào)表中的數(shù)據(jù)統(tǒng)計(jì)功能,并給出存儲(chǔ)過程的具體實(shí)現(xiàn)。
[關(guān)鍵詞]人事管理子系統(tǒng) 存儲(chǔ)過程 VB
作者簡(jiǎn)介:葛明明(1977-),女,漢族,吉林長(zhǎng)嶺人,助教,工學(xué)碩士,主要研究方向:軟件工程與軟件自動(dòng)化;龔自霞(1978-),女(漢族),安徽巢湖人,助教,工學(xué)碩士,主要研究方向:計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)及其應(yīng)用。
為了加快校園信息電子化的進(jìn)程,我院立項(xiàng)開發(fā)OA校園辦公自動(dòng)化系統(tǒng)。項(xiàng)目主要涉及教學(xué)運(yùn)行、科研管理、人事管理、教材管理、財(cái)務(wù)管理等幾個(gè)子系統(tǒng)。系統(tǒng)采用客戶/服務(wù)器(C/S)的工作模式,服務(wù)器端主要用于存放數(shù)據(jù),客戶端的應(yīng)用程序負(fù)責(zé)數(shù)據(jù)處理。如何提高應(yīng)用程序的執(zhí)行效率、提高整個(gè)管理系統(tǒng)的性能是個(gè)重要問題。
通過實(shí)踐驗(yàn)證,在開發(fā)中適當(dāng)?shù)氖褂么鎯?chǔ)過程將減少網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)暮臅r(shí),有利于提高整個(gè)系統(tǒng)的性能,并對(duì)于系統(tǒng)和功能的修改和維護(hù)也有很大幫助。本文將對(duì)存儲(chǔ)過程及其在人事管理子系統(tǒng)中的應(yīng)用進(jìn)行分析,并提供人事管理模塊中利用存儲(chǔ)過程制作復(fù)雜報(bào)表的應(yīng)用實(shí)例。
一、存儲(chǔ)過程
所謂存儲(chǔ)過程(Stored Procedure),就是存儲(chǔ)在數(shù)據(jù)庫服務(wù)器上的一組預(yù)先編譯好的SQL語句,就好像一個(gè)已經(jīng)定義好的函數(shù)。它具有以下幾個(gè)特性:
執(zhí)行速度快,存儲(chǔ)過程在創(chuàng)建的時(shí)候就經(jīng)過了語法檢查和性能優(yōu)化,它在第一次調(diào)用后就駐留內(nèi)存中,不必再經(jīng)過編譯和優(yōu)化,而一般SQL語句每執(zhí)行一次就編譯一次;
當(dāng)對(duì)數(shù)據(jù)庫進(jìn)行復(fù)雜操作時(shí),可將此復(fù)雜操作用存儲(chǔ)過程封裝起來與數(shù)據(jù)庫提供的事務(wù)處結(jié)合一起使用;
存儲(chǔ)過程可以重復(fù)使用;
安全性高,可設(shè)定只有某此用戶才具有對(duì)指定存儲(chǔ)過程的使用權(quán)。
二、使用存儲(chǔ)過程的優(yōu)勢(shì)
存儲(chǔ)過程在創(chuàng)建的時(shí)候就被數(shù)據(jù)庫引擎編譯,編譯后生成的結(jié)果已經(jīng)存放在服務(wù)器端。在存儲(chǔ)過程中可以包含大量的SQL語句,但存儲(chǔ)過程是作為一個(gè)獨(dú)立的單位來使用的。在調(diào)用的時(shí)候只用一個(gè)語句就可以實(shí)現(xiàn),所以大大減少了網(wǎng)絡(luò)上數(shù)據(jù)的傳輸。
利用存儲(chǔ)過程,應(yīng)用程序只需傳送存儲(chǔ)過程名和相應(yīng)的參數(shù),服務(wù)器端執(zhí)行完存儲(chǔ)過程只發(fā)送給客戶端執(zhí)行的結(jié)果,避免客戶端和服務(wù)器端之間頻繁交換數(shù)據(jù)造成的網(wǎng)絡(luò)延時(shí)甚至網(wǎng)絡(luò)堵塞。
存儲(chǔ)過程是存儲(chǔ)在數(shù)據(jù)庫服務(wù)器上的一組預(yù)編譯SQL語句,將SQL語句和源代碼分離,使得SQL語句和源代碼分開維護(hù)成為可能?梢园凑詹煌墓δ苣K,設(shè)計(jì)不同的存儲(chǔ)過程以供使用。
盡管調(diào)試存儲(chǔ)過程比較困難,但對(duì)于使用頻率高或者結(jié)構(gòu)復(fù)雜的SQL語句適合采用存儲(chǔ)過程來編寫。
人事管理子系統(tǒng)中需要生成比較復(fù)雜的統(tǒng)計(jì)報(bào)表。并且報(bào)表的格式和數(shù)據(jù)要求每年總有一點(diǎn)變動(dòng)。為了避免修改程序去升級(jí)每個(gè)客戶端,通過存儲(chǔ)過程,只需發(fā)一條SQL指令,修改存在服務(wù)器上的存儲(chǔ)過程就可以實(shí)現(xiàn),對(duì)于客戶端卻沒有影響。
三、在人事管理系統(tǒng)中使用存儲(chǔ)過程統(tǒng)計(jì)報(bào)表數(shù)據(jù)
由于報(bào)表涉及大量統(tǒng)計(jì)工作,表格中的每個(gè)單元格數(shù)據(jù)都需要通過計(jì)算來獲得,所以實(shí)現(xiàn)的策略是使用存儲(chǔ)過程作為水晶報(bào)表的數(shù)據(jù)源,存儲(chǔ)過程的任務(wù)就是在每一次被調(diào)用時(shí)生成一張臨時(shí)表來存儲(chǔ)報(bào)表中需要的數(shù)據(jù),并進(jìn)行計(jì)算將統(tǒng)計(jì)數(shù)據(jù)填充到臨時(shí)表中。
由于篇幅限制,此處僅分析涉及“專業(yè)技術(shù)人才管理”報(bào)表的存儲(chǔ)過程。
系統(tǒng)使用的開發(fā)工具有VB6+SQL server 2000+Excel 2000+水晶報(bào)表。
存儲(chǔ)過程涉及的數(shù)據(jù)表的主表是教師基本情況表,還有性別表、民族表、政治面貌表、學(xué)位表、學(xué)歷表、職稱表、職務(wù)表等副表,為了便于維護(hù)信息,主表中涉及的性別、民族、政治面貌等信息存儲(chǔ)的是對(duì)應(yīng)編號(hào),副表中存儲(chǔ)的信息是對(duì)應(yīng)的編號(hào)、名稱,所采用的編碼參考了國(guó)家標(biāo)準(zhǔn)。主表(教師基本情況表)的表結(jié)構(gòu)中相關(guān)字段設(shè)計(jì)如下:
。ㄒ唬┰诜⻊(wù)器端創(chuàng)建存儲(chǔ)過程
1.創(chuàng)建存儲(chǔ)過程ZYJSRCQK:
負(fù)責(zé)生成臨時(shí)表#ZYJSRCQKB,并調(diào)用存儲(chǔ)過程SEARCH實(shí)現(xiàn)統(tǒng)計(jì)報(bào)表需要的數(shù)據(jù)。
Create Procedure ZYJSRCQK
As
BEGIN
create table #ZYJSRCQKB(--創(chuàng)建臨時(shí)表
XMvarchar(40) null,--項(xiàng)目
DMvarchar(10) null, --代碼
C1INTnull,--合計(jì)
C2INTnull,--女
C3INT null, --少數(shù)民族
C4INT null,--中共黨員
C5INT null,--博士
C6INT null,--碩士
C7INT null,--港澳臺(tái)及外籍人士
C8INT null,--專業(yè)技術(shù)職務(wù)高級(jí)
C9INT null,--專業(yè)技術(shù)職務(wù)正高級(jí)
C10INT null,--專業(yè)技術(shù)職務(wù)中級(jí)
C11INT null,--專業(yè)技術(shù)職務(wù)初級(jí)
C12INT null,--學(xué)歷研究生
C13INT null,--學(xué)歷大學(xué)本科
C14INT null,--學(xué)歷大學(xué)?
C15INT null,--學(xué)歷中專
C16INT null,--學(xué)歷高中及以下
C17INT null,--年齡35及以下
C18INT null,--年齡36~40
C19INT null,--年齡41~45
C20INT null,--年齡46~50
C21INT null,--年齡51~54
C22INT null,--年齡55及以上
PX INT NULL) --排序字段
Insert into #ZYJSRCQKB(PX,XM,DM,
C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,
C15,C16,C17,C18,C19,C20,C21,C22) EXEC SEARCH """其中,在管理崗位工作的""","""2""","GW=""管理""","2"
insert into #ZYJSRCQKB(PX,XM,DM) values(3,"其中,具有職業(yè)資格的","3")
insert into #ZYJSRCQKB(PX,XM,DM) values(4,"一、專業(yè)技術(shù)職務(wù)","-")
insert into #ZYJSRCQKB(PX,XM,DM,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,
C15,C16,C17,C18,C19,C20,C21,C22) EXEC SEARCH """高級(jí)職務(wù)""","""4""","SUBSTRING(ZC,3,1)=""1"" OR SUBSTRING(ZC,3,1)=""2""","5"
insert into #ZYJSRCQKB(PX,XM,DM,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,
相關(guān)熱詞搜索:人事管理 存儲(chǔ)過程 系統(tǒng)中的應(yīng)用
熱點(diǎn)文章閱讀