- 相關(guān)推薦
SQLSERVER視圖和存儲(chǔ)過程在進(jìn)銷存系統(tǒng)開發(fā)中的應(yīng)用
SQL Server 是Microsoft 公司推出的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行Microsoft Windows 98 的膝上型電腦到運(yùn)行Microsoft Windows 2012 的大型多處理器的服務(wù)器等多種平臺(tái)使用。下面小編為大家介紹利用spl server開發(fā)的過程。
摘要:視圖和儲(chǔ)過程是SQLSERVER重要的數(shù)據(jù)庫(kù)對(duì)象。在進(jìn)銷存管理信息系統(tǒng)開發(fā)中應(yīng)用視圖和存儲(chǔ)過程技術(shù)能收到提高所開發(fā)系統(tǒng)的安全性、提高執(zhí)行效率、方便代碼管理等效果。筆者就如何在.NET環(huán)境中開發(fā)通用進(jìn)銷存管理系統(tǒng),以業(yè)績(jī)提成模塊為例結(jié)合應(yīng)用視圖和存儲(chǔ)過程技術(shù)提出自己的設(shè)想。
關(guān)鍵詞:存儲(chǔ)過程;視圖;進(jìn)銷存系統(tǒng);開發(fā);應(yīng)用
進(jìn)銷存系統(tǒng)是對(duì)企業(yè)的進(jìn)貨、銷售、庫(kù)存進(jìn)行統(tǒng)一管理的應(yīng)用系統(tǒng)。隨著計(jì)算機(jī)技術(shù)不斷普及、隨著市場(chǎng)競(jìng)爭(zhēng)越趨激烈,現(xiàn)在中小企業(yè)普遍使用進(jìn)銷存系統(tǒng)進(jìn)行管理。市場(chǎng)上各種進(jìn)銷存系統(tǒng)參差不齊。企業(yè)要想在這種大環(huán)境中取得競(jìng)爭(zhēng)的勝利,必須依托信息系統(tǒng)。另外,企業(yè)的這些數(shù)據(jù)量非常大,能對(duì)這些數(shù)據(jù)進(jìn)行統(tǒng)一管理、統(tǒng)計(jì)分析,為提高運(yùn)作效率、提供決策,提供及大方便。開發(fā)一個(gè)實(shí)用、高效的管理信息系統(tǒng),為企業(yè)帶來很大幫助。存儲(chǔ)過程在系統(tǒng)設(shè)計(jì)中應(yīng)用,能為提高系統(tǒng)的安全性,提高執(zhí)行效率,方便代碼管理帶來很好的效果。高效的進(jìn)銷存系統(tǒng)是支撐中小企業(yè)實(shí)現(xiàn)“零庫(kù)存”、極大限度降低企業(yè)運(yùn)作成本、追求利益最大化的法寶。中小企業(yè)在開發(fā)進(jìn)銷存系統(tǒng)軟件時(shí),由于開發(fā)方便、部署簡(jiǎn)單、性能優(yōu)良,通常使用SQLSERVER作為后臺(tái)數(shù)據(jù)庫(kù)管理。開發(fā)過程中需要使用SQL語(yǔ)句向后臺(tái)數(shù)據(jù)庫(kù)發(fā)送命令,對(duì)數(shù)據(jù)庫(kù)返回結(jié)果進(jìn)行處理。進(jìn)銷存數(shù)據(jù)庫(kù)中的表結(jié)構(gòu)各異,記錄規(guī)模較大.如何編寫高效的程序以實(shí)現(xiàn)與數(shù)據(jù)庫(kù)進(jìn)行交互、對(duì)數(shù)據(jù)庫(kù)進(jìn)行維護(hù)等復(fù)雜操作是進(jìn)銷存管理軟件開發(fā)中的一個(gè)難點(diǎn),F(xiàn)就在基于.NET的開發(fā)環(huán)境中,以通用進(jìn)銷存系統(tǒng)業(yè)績(jī)提成統(tǒng)計(jì)模塊開發(fā)中結(jié)合應(yīng)用視圖和存儲(chǔ)過程作一些探討。
1 視圖和存儲(chǔ)過程概述
視圖相當(dāng)于創(chuàng)建的一張?zhí)摂M表或存儲(chǔ)查詢,視圖訪問的數(shù)據(jù)不作為獨(dú)特的對(duì)象存儲(chǔ)在數(shù)據(jù)庫(kù)內(nèi)。SELECT語(yǔ)句結(jié)果集構(gòu)成視力的內(nèi)容,在程序開發(fā)中可以使用視圖實(shí)現(xiàn)下列功能:限定用戶查詢表中的特定行或特定列上;將多個(gè)表中的列鏈接起來,使它們看起來像一個(gè)表;聚合信息。使用視圖的優(yōu)點(diǎn):保護(hù)敏感數(shù)據(jù);封裝復(fù)雜查詢;滿足不同用戶對(duì)數(shù)據(jù)的需求;提供一定程度上的獨(dú)立性。在數(shù)據(jù)庫(kù)管理系統(tǒng)中使用CREATEVIEW指令來創(chuàng)建視圖。
存儲(chǔ)過程是在數(shù)據(jù)庫(kù)系統(tǒng)中,一組為了完成特定功能的SQL語(yǔ)句集,經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)中,用戶通過指定存儲(chǔ)過程的名字并給出參數(shù)(如果該存儲(chǔ)過程帶有參數(shù))來執(zhí)行它。
使用存儲(chǔ)過程明顯具有以下優(yōu)點(diǎn):允許組件式編程。存儲(chǔ)過程在被創(chuàng)建以后可以在程序中被多次調(diào)用而不必重新編寫該存儲(chǔ)過程的SQL語(yǔ)句,而且數(shù)據(jù)庫(kù)管理人員可隨時(shí)對(duì)存儲(chǔ)過程進(jìn)行修改。只要過程接口不發(fā)生變化,對(duì)應(yīng)用程序源代碼并無影響,從而極大地提高了程序的可移植性;更快的執(zhí)行速度。存儲(chǔ)過程是預(yù)編譯的,在首次運(yùn)行一個(gè)存儲(chǔ)過程時(shí)查詢優(yōu)化器對(duì)其進(jìn)行分析、優(yōu)化,并給出最終被存在系統(tǒng)表中的執(zhí)行計(jì)劃。而采用第一種方法則需要在每次運(yùn)行時(shí)都要對(duì)發(fā)送到數(shù)據(jù)庫(kù)的所有SQL語(yǔ)句進(jìn)行編譯和優(yōu)化;降低網(wǎng)絡(luò)負(fù)載。應(yīng)用程序調(diào)用存儲(chǔ)過程時(shí),網(wǎng)絡(luò)中傳送的僅是該條調(diào)用語(yǔ)句。而采用第一種方法將傳送多條SQL語(yǔ)句,從而大大增加了網(wǎng)絡(luò)流量,在對(duì)數(shù)據(jù)庫(kù)網(wǎng)絡(luò)訪問量達(dá)到一定程度時(shí),可能造成網(wǎng)絡(luò)堵塞;增強(qiáng)數(shù)據(jù)庫(kù)的安全性。系統(tǒng)管理員通過對(duì)執(zhí)行某一存儲(chǔ)過程的權(quán)限進(jìn)行限制,能夠?qū)崿F(xiàn)對(duì)相應(yīng)的數(shù)據(jù)訪問權(quán)限的限制,避免非授權(quán)用戶對(duì)數(shù)據(jù)的訪問,保證數(shù)據(jù)的安全。在數(shù)據(jù)庫(kù)管理系統(tǒng)中使用create procedure指令來創(chuàng)建存儲(chǔ)過程。
2 以業(yè)績(jī)統(tǒng)計(jì)為例探討視圖和存儲(chǔ)過程在進(jìn)銷存系統(tǒng)開發(fā)中的具體應(yīng)用
現(xiàn)在中小企業(yè)的管理中,為了提高員工的積極性,常用的激勵(lì)辦法是業(yè)績(jī)提成。組合查詢業(yè)績(jī)統(tǒng)計(jì)是進(jìn)銷存系統(tǒng)最復(fù)雜的邏輯,F(xiàn)以組合條件查詢業(yè)績(jī)?yōu)槔Y(jié)合視圖和存儲(chǔ)過程來來實(shí)現(xiàn)。例如中小企業(yè)為每個(gè)客戶公司設(shè)定一個(gè)銷售主管和銷售助理,并對(duì)銷售主管和助理設(shè)定一個(gè)提成比例,每一個(gè)員工,既可以是這個(gè)客戶的主管,也可以是其他客戶的助理,根據(jù)不同類型的客戶,其提成比例都不一致。每完成一筆對(duì)該客戶的銷售,可以分別會(huì)對(duì)銷售主管和助理按提成比例統(tǒng)計(jì)業(yè)績(jī)。現(xiàn)將實(shí)現(xiàn)這功能所需要的數(shù)據(jù)表、創(chuàng)建視圖、存儲(chǔ)過程及運(yùn)行效果表述如下:
2.1 數(shù)據(jù)表及關(guān)系
客戶資料(數(shù)據(jù)庫(kù)表名:tb_client)用途:存放客戶相關(guān)的數(shù)據(jù);
銷售表(數(shù)據(jù)表名:tb_bill)用途:存放銷售單的數(shù)據(jù);
銷售明細(xì)表(數(shù)據(jù)表名:tb_bill_product)用途:存放銷售單中相關(guān)的貨品明細(xì)數(shù)據(jù);
貨品信息(數(shù)據(jù)庫(kù)表名:GoodsData)用途:存放貨品信息數(shù)據(jù);
用戶表(數(shù)據(jù)庫(kù)表名:Username)用途:存放系統(tǒng)用戶的數(shù)據(jù);
2.2 創(chuàng)建視圖
用CREATEVIEW指令創(chuàng)建視圖view_tj_yeji。該視圖通過鏈接多個(gè)表顯示每個(gè)客戶每個(gè)銷售單的每個(gè)商品的情況。主要包括客戶的信息、客戶的銷售單情況、銷售單包括的商品情況、商品明細(xì)信息。
SQLSERVER數(shù)據(jù)庫(kù)端創(chuàng)建視圖代碼:
2.3 創(chuàng)建存儲(chǔ)過程
在視圖的基礎(chǔ)上創(chuàng)建存儲(chǔ)過程,用CREATEPROC EDURE指令創(chuàng)建名為P_view_hjyjgw的存儲(chǔ)過程,進(jìn)行業(yè)績(jī)提成統(tǒng)計(jì)。該存儲(chǔ)過程是帶參數(shù)的,其參數(shù)是輸入的組合條件,實(shí)現(xiàn)生成以員工為基準(zhǔn)的統(tǒng)計(jì)表,按照輸入的復(fù)雜條件進(jìn)行統(tǒng)計(jì)。
與數(shù)據(jù)庫(kù)連接,一些相關(guān)函數(shù)的定義代碼省略。在實(shí)際應(yīng)用中,我們還可以通過帶參數(shù)的存儲(chǔ)過程構(gòu)建動(dòng)態(tài)SQL語(yǔ)句,實(shí)現(xiàn)更復(fù)雜的功能,提高程序的通用性和可擴(kuò)展性。
3 結(jié)語(yǔ)
在進(jìn)銷存系統(tǒng)開發(fā)過程中,將與數(shù)據(jù)庫(kù)相關(guān)的操作通過視圖和存儲(chǔ)過程等方式寫到數(shù)據(jù)庫(kù)組件中,將數(shù)據(jù)呈現(xiàn)通過數(shù)據(jù)控件調(diào)用視圖或存儲(chǔ)過程實(shí)現(xiàn),這樣做將大大提高系統(tǒng)的開發(fā)效率,對(duì)于程序維護(hù)也相當(dāng)方便,與數(shù)據(jù)庫(kù)相關(guān)的修改直接在后臺(tái)數(shù)據(jù)改視圖和存儲(chǔ)過程即可,無須改程序代碼,無須重新編譯。在進(jìn)銷存系統(tǒng)軟件開發(fā)過程中綜合運(yùn)用存儲(chǔ)過程和視圖,會(huì)給軟件設(shè)計(jì)帶來極大的方便,還可以提高軟件的安全性、提高軟件的運(yùn)行效率。當(dāng)然,SQLSERVER數(shù)據(jù)庫(kù)對(duì)象除了存儲(chǔ)過程和視圖以外,還有觸發(fā)器和索引等等,在以后應(yīng)用程序開發(fā)過程中,綜合運(yùn)用上述組件,往往會(huì)帶來事半功倍的效果。
參考文獻(xiàn):
[1]鄧超群,蔣永進(jìn).銷存一體化管理信息系統(tǒng)分析與設(shè)計(jì)[J].現(xiàn)代商業(yè):177-178.
[2]蘇琦,解析存儲(chǔ)過程孝檔案管贛件開發(fā)中的應(yīng)用[J].電腦編程技巧與維護(hù):53-54.
[3]周峰.SQLSERVER2005基礎(chǔ)與實(shí)踐教程[M].北京:電子工業(yè)出版社,2006,7.
[4]鄭阿奇.ASP.NET實(shí)用教程[M].北京:電子工業(yè)出版社.
【SQLSERVER視圖和存儲(chǔ)過程在進(jìn)銷存系統(tǒng)開發(fā)中的應(yīng)用】相關(guān)文章:
淺析Comet技術(shù)在Java Web實(shí)時(shí)系統(tǒng)開發(fā)中的應(yīng)用10-07
油田化學(xué)的應(yīng)用和化學(xué)品中的應(yīng)用10-08
sqlserver語(yǔ)句大全10-05
淺談溝通技巧在醫(yī)院藥學(xué)服務(wù)過程中的應(yīng)用的論文10-07
計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)應(yīng)用案例論文10-08
工作過程的計(jì)算機(jī)應(yīng)用和維護(hù)開發(fā)論文10-08
計(jì)算機(jī)應(yīng)用基礎(chǔ)教學(xué)中過程性評(píng)價(jià)的研究論文10-08