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