日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式硬件

摘 要: 利用SQL Server作為數(shù)據(jù)庫管理平臺開發(fā)高校通用計算機在線考試軟件系統(tǒng)時,由于數(shù)據(jù)量較大,最應(yīng)關(guān)注的是軟件系統(tǒng)的運行速度、性能和可維護性等指標。如果采用常規(guī)的程序設(shè)計方案,會造成網(wǎng)絡(luò)通信數(shù)據(jù)量大、業(yè)務(wù)邏輯處理速度慢、系統(tǒng)運行效率低等問題。為解決這些問題,軟件系統(tǒng)中相關(guān)業(yè)務(wù)邏輯設(shè)計采用存儲過程的方法實現(xiàn),大大減少了網(wǎng)絡(luò)流量,提高了系統(tǒng)的性能和可維護性。
關(guān)鍵詞: SQL Server; 在線考試; 網(wǎng)絡(luò)流量; 存儲過程

隨著計算機網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫技術(shù)的飛速發(fā)展,高校的數(shù)字化校園建設(shè)進程日益深入,其中數(shù)字化教學與學習環(huán)境建設(shè)成為其核心內(nèi)容。為推動數(shù)字化校園建設(shè)進程,創(chuàng)建數(shù)字化教學環(huán)境,利用Delphi7和SQL Server2000開發(fā)出適用于多學科的高校通用計算機在線考試軟件系統(tǒng)。Delphi在基于C/S模式的數(shù)據(jù)庫應(yīng)用開發(fā)領(lǐng)域具有很強的數(shù)據(jù)庫支持能力,因為它提供了豐富的數(shù)據(jù)庫操作組件,常用的有TQuery、TTable、TADOQuery和TADOTable等[1]。通過這些組件,程序員可以在短時間內(nèi)完成一個應(yīng)用程序模塊的設(shè)計,大大減少了開發(fā)人員的工作量。但是,這些組件在操作數(shù)據(jù)庫時卻存在局限性,即必須將數(shù)據(jù)庫中的記錄從服務(wù)器端取出放入到客戶端,再根據(jù)查詢條件進行選擇。這種實現(xiàn)方法,如果待訪問的數(shù)據(jù)量較大,勢必因為查詢時間較長而降低程序執(zhí)行的速度,從而降低應(yīng)用程序的性能。解決這一問題利用了SQL Server2000的存儲過程來實現(xiàn)[2]。
1 存儲過程及其優(yōu)點
1.1 存儲過程的定義
存儲過程是存儲在服務(wù)器上的一組預(yù)先定義并編譯好的用來實現(xiàn)某種特定功能的SQL語句。它可以接受參數(shù)、返回狀態(tài)值或參數(shù)值。存儲過程在服務(wù)器端執(zhí)行,通過應(yīng)用程序調(diào)用的方法實現(xiàn),執(zhí)行結(jié)束后再把結(jié)果返回到客戶端。
1.2 存儲過程的優(yōu)點
(1)存儲過程執(zhí)行速度快,便于提高系統(tǒng)的性能。由于存儲過程在第一次執(zhí)行之后,其執(zhí)行規(guī)劃就儲存在高速緩沖存儲區(qū)中,在以后的操作中。只需從高速緩沖存儲區(qū)中調(diào)用編譯好的二進制形式存儲過程來執(zhí)行[3]。
(2)減少網(wǎng)絡(luò)流量,提高系統(tǒng)執(zhí)行效率??蛻舳藨?yīng)用程序調(diào)用一個存儲過程,只需通過網(wǎng)絡(luò)發(fā)送該過程名和少量入口參數(shù),數(shù)據(jù)庫服務(wù)器就可執(zhí)行該過程,執(zhí)行完成后,只返回結(jié)果狀態(tài)或?qū)⒆罱K結(jié)果集給客戶端應(yīng)用程序,無需通過網(wǎng)絡(luò)傳送大量的SQL操作命令和中間結(jié)果,最大限度地減少網(wǎng)絡(luò)通信負擔,提高了執(zhí)行效率。
(3)維護了數(shù)據(jù)庫的安全性。如果用戶被授予執(zhí)行存儲過程的權(quán)限,即使該用戶沒有在執(zhí)行該存儲過程中可參考的表或視圖的訪問權(quán)限,該用戶也可以完全執(zhí)行該存儲過程而不受影響。因此,可以通過創(chuàng)建存儲過程來完成數(shù)據(jù)的插入、更新和刪除等操作,并且可以通過編程方式控制在操作中對信息的訪問權(quán)限[4]。
(4)提高軟件系統(tǒng)的可維護性。存儲過程在創(chuàng)建時就在服務(wù)器上經(jīng)過調(diào)試和編譯,可以避免不必要的錯誤出現(xiàn)。另外,存儲過程將相關(guān)業(yè)務(wù)邏輯封裝在一起,可以大大提高整個軟件系統(tǒng)的可維護性。因為當相關(guān)業(yè)務(wù)邏輯發(fā)生變化時,不需要修改并編譯客戶端應(yīng)用程序,只需要修改位于服務(wù)器端的實現(xiàn)相應(yīng)業(yè)務(wù)邏輯的存儲過程即可。
(5)充分增強SQL語言的功能和靈活性。存儲過程可以用流控制語句編寫,有很強的靈活性,可以完成復雜的判斷和運算。
基于以上優(yōu)點,在進行C/S模式數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)時,通常把比較浪費時間、影響網(wǎng)絡(luò)傳送的相關(guān)業(yè)務(wù)邏輯編寫成存儲過程由服務(wù)器執(zhí)行,同時利用服務(wù)器的SQL語法進行優(yōu)化處理,只將少量的結(jié)果顯示在客戶端,充分提高軟件系統(tǒng)的性能[5]。
2 存儲過程的創(chuàng)建方法
以SQL Server 2000數(shù)據(jù)庫管理系統(tǒng)為背景,創(chuàng)建方法如下:
CREATE PROC[EDURE]
procedure_name[;number]
[{@parameter data_type}[VARYING][=default] [OUTPUT] ][,...n]
[WITH {RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}]
[FOR REPLICATION]
AS sql_statement [...n ]
下面對語法中各選項進行說明:
(1)選項“procedure_name”指存儲過程名,不能超過128個字符,“[;number]”指程序編號,用于區(qū)別同名的存儲過程。
(2)選項“@parameter”表示參數(shù),每個存儲過程中最多可以設(shè)定1 024個參數(shù),要求在每個參數(shù)名前加上符號“@”。
(3)選項“[=default]”指為對應(yīng)參數(shù)設(shè)定默認值。
(4)選項“OUTPUT”用來指定參數(shù)既有輸入又有輸出。即在調(diào)用這個存儲過程時,如果所指定的參數(shù)是要輸入的參數(shù),同時也需要在結(jié)果中輸出,則該項必須為“OUTPUT”。
(5)選項“WITH”用來指定存儲過程的處理方式。
(6)選項“FOR REPLICATION”表示只能由復制方式執(zhí)行[6]。
3 存儲過程在考試軟件系統(tǒng)中的應(yīng)用
(1)考試系統(tǒng)在運行時要經(jīng)過三個步驟,考生抽取套題編號、抽取套題內(nèi)容和將套題內(nèi)容插入答題表進行答題。如果不采用存儲過程,則需用下面方法實現(xiàn)。
①隨機抽取套題編號
select 套題編號from tblcrecord order by newid()
②抽取對應(yīng)套題內(nèi)容,套題編號存儲在dm.strNum中
with qry1 do
Begin
Close ;
SQL.Clear ;
SQL.Add(′Select * from tblTK Where 套題編號
='''+dm.strNum +''');
Open ;
End;
③插入考試題到考試表tblKS中
qry1.First;
While not qry1.Eof Do
begin
qry2.Append;
qry2.FieldByName(‘考生學號’).Value:= qry1.Field-
ByName(‘考生學號’).Value;

qry2.Post;
end;
顯然,此種方法步驟繁瑣,耗時較多,在考試過程中會產(chǎn)生抽題緩慢的現(xiàn)象,系統(tǒng)性能嚴重降低。為避免此種情況的發(fā)生,考試系統(tǒng)采用了存儲過程的方法,代碼如下[7]:
CREATE PROCEDURE cp_Paper_Add
@MyNo char(10),
@Mynum char(20)
AS
set nocount on
exec(′insert into tblKS (學生學號、套題編號、試題序號、試題內(nèi)容、試題答案、試題分數(shù)、是否答題、套題名稱、考試科目、試題類型、學生分數(shù)、類別序號) select''''+@MyNo+'''',''''+@Mynum+''',試題序號,試題內(nèi)容,試題答案,試題分數(shù),“否”,套題名稱,科目名稱,試題類型,0,類別序號 from tblTK where 套題編號='''+@Mynum+''' )
GO
通過執(zhí)行存儲過程,將題庫中與考生抽取套題編號相匹配的記錄提取出來,并批量插入到考試表中,同時對考生分數(shù)進行了初始化為0的動作。而本考試系統(tǒng)就是將考生的學號和考生抽取的套題編號作為參數(shù)傳遞給存儲過程,因此,大幅度提高了考試軟件的效率。
(2)在考試系統(tǒng)進行不同類型題目抽取時,如果在Delphi中直接應(yīng)用SQL語句,應(yīng)使用下面代碼:
with cds1 do
Begin
Close ;
SQL.Clear ;
SQL.Add(′Select * from tblKS Where 學生學號=′);
SQL.Add(‘ ?蓯+dm.strNo +?蓯 and 試題類型=′′單項選擇題′′ order by 試題序號′);
Open ;
End;
此時,程序是在運行時才編譯的。這樣就增加了運行的時間,同時還要把完整的SQL語句傳遞給Sql Server服務(wù)器執(zhí)行,這樣考試過程中勢必增加網(wǎng)絡(luò)流量,降低軟件的運行效率。
如果采用存儲過程,可用下面方法實現(xiàn):
CREATE PROCEDURE sp_Query_All
@strNo char(10)
AS
set nocount on
Select Select * from tblKS Where 學生學號=@strNO and 試題類型=′′單項選擇題′′ order by 試題序號
GO
在客戶端調(diào)用方法如下:
with cds1 do
Begin
Close ;
SQL.Clear ;
SQL.Add('exec sp_Query_All :strNO');

Params.ParamByName('strNO').Value:=DM.strNO;
  Open ;
  End;
此時,存儲過程是預(yù)先編譯的,自然節(jié)省了編譯的時間,同時只向服務(wù)器傳遞了一個參數(shù)DM.strNO,大大減少了網(wǎng)絡(luò)流量,提高了考試系統(tǒng)的性能。
(3)在考試系統(tǒng)中添加考生信息時,首先要判斷是否存在該考生學號信息,然后再進行添加操作。如果采用普通SQL語句,代碼如下:
with qry1 do
Begin
Close ;
SQL.Clear ;
SQL.Add(′select * from tblstudents where考生學號=
:strNO′);
Params.ParamByName('strNO').Value :=DM.strNO;
Open ;
if recordcount=0 then
begin
qry2.Append;
qry2.FieldByName(‘考生學號’).Value:= DM.strNO;

qry2.Post;
End;

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在可持續(xù)能源蓬勃發(fā)展的當下,如何高效獲取、存儲并利用能源,已成為全球科技創(chuàng)新的核心議題。隨著全球氣候變化和能源需求增長的雙重壓力,清潔能源的高效利用正成為全球關(guān)注的焦點。而在新能源時代,能量收集與存儲技術(shù)的重要性愈加凸顯...

關(guān)鍵字: 新能源 能量 存儲技術(shù)

上海 2025年6月20日 /美通社/ -- 6月18日,上海世界移動通信大會(MWC 2025)在上海新國際博覽中心盛大啟幕。德明利以"智存無界,全棧智能&qu...

關(guān)鍵字: 嵌入式 AI 全棧 存儲技術(shù)

臺北 2025年5月23日 /美通社/ -- 2025年5月20日至23日,全球科技盛會COMPUTEX臺北國際電腦展順利舉辦,德明利以"智存無界,全棧智能&qu...

關(guān)鍵字: 存儲技術(shù) 全棧 TE COMPUT

在科技飛速發(fā)展的當下,電動汽車行業(yè)正經(jīng)歷著前所未有的變革。從最初解決續(xù)航焦慮,到如今不斷優(yōu)化性能體驗,電動汽車的技術(shù)迭代日新月異。近期,現(xiàn)代汽車集團推出的一項基于智能手機配對的電動汽車性能調(diào)節(jié)技術(shù),猶如一顆投入平靜湖面的...

關(guān)鍵字: 電動汽車 性能 參數(shù)

北京2024年12月23日 /美通社/ -- 在當今數(shù)字化浪潮洶涌澎湃的時代背景下,大模型技術(shù)猶如一顆璀璨的明星,照亮了科技發(fā)展的廣闊蒼穹,而存儲技術(shù)的變革,作為這一進程中的堅實基石,正日益成為產(chǎn)業(yè)界與學術(shù)界共同矚目的核...

關(guān)鍵字: 模型 存儲系統(tǒng) 存儲技術(shù) 顯存

P84纖維因其良好的耐高溫 、阻燃等性能 ,在高溫行業(yè)得到青睞 ,但一直未得到大力推廣 , 除價格居高不下以外 , 還與P84纖維異形結(jié)構(gòu)有關(guān)。鑒于此 ,從濾料孔徑、過濾效率、粉塵剝離率、殘余阻力、清灰周期等方面出發(fā) ,...

關(guān)鍵字: 高溫煙氣 P84濾料 異形結(jié)構(gòu) 性能 試驗

北京2024年9月24日 /美通社/ -- 在數(shù)字化浪潮的洶涌澎湃中,閃存技術(shù)與人工智能(AI)的融合發(fā)展正逐步成為推動社會進步與行業(yè)變革的關(guān)鍵力量。浪潮信息在以"芯存儲 AI未來"為主題的2024全...

關(guān)鍵字: AI 存儲系統(tǒng) 存儲技術(shù) 帶寬

隨著科技的飛速發(fā)展,尤其是物聯(lián)網(wǎng)、自動駕駛、人工智能等領(lǐng)域的蓬勃興起,對存儲技術(shù)的需求日益增長。傳統(tǒng)的存儲器如DRAM和Flash雖已占據(jù)市場主流,但其在性能、功耗、耐久性和可靠性等方面已逐漸接近物理極限。因此,新興存儲...

關(guān)鍵字: DRAM Flash 存儲技術(shù)

開關(guān)電源是現(xiàn)代電子設(shè)備中不可或缺的一部分,其性能穩(wěn)定與否直接關(guān)系到整個電子系統(tǒng)的正常工作。然而,在實際使用中,開關(guān)電源可能會遇到各種故障,其中之一就是輸出不穩(wěn),并伴有“噠噠”聲。這種故障不僅影響設(shè)備的正常使用,還可能對設(shè)...

關(guān)鍵字: 開關(guān)電源 性能 電子系統(tǒng)

電解電容作為電子電路中的重要元件,其性能的好壞直接影響到整個電路的正常運行。因此,正確地測量電解電容的好壞對于保證電路的穩(wěn)定性和可靠性至關(guān)重要。本文將詳細介紹電解電容的測量方法,幫助讀者了解如何準確地判斷電解電容的好壞。

關(guān)鍵字: 電解電容 電子電路 性能
關(guān)閉