• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種在SQLServer中實(shí)現(xiàn)考號(hào)的批量生成算法

      2013-04-15 05:30:10陳印
      關(guān)鍵詞:算法

      陳印

      (四川職業(yè)技術(shù)學(xué)院計(jì)科系,四川遂寧 629000)

      一種在SQLServer中實(shí)現(xiàn)考號(hào)的批量生成算法

      陳印

      (四川職業(yè)技術(shù)學(xué)院計(jì)科系,四川遂寧629000)

      摘要:本文以遂寧市中考管理系統(tǒng)為例,介紹了一種在SQLServer中通過存儲(chǔ)過程在數(shù)據(jù)庫端實(shí)現(xiàn)指定范圍學(xué)生考號(hào)的批量生成算法.

      關(guān)鍵詞:SQLServer;存儲(chǔ)過程;Top;算法

      1 引言

      考號(hào)的編排是考生管理系統(tǒng)中的重要功能模塊.在遂寧市中考管理系統(tǒng)中,每年考生人數(shù)達(dá)3-5萬人,由于考生不均衡地分布在不同區(qū)縣,所以每年中考報(bào)名結(jié)束后,都需要根據(jù)就近的原則在不同的區(qū)縣設(shè)置考點(diǎn)以滿足中考管理的需要.由于每年各學(xué)校參考人數(shù)均有較大變化,尤其是邊遠(yuǎn)鄉(xiāng)鎮(zhèn),因此考點(diǎn)的設(shè)置每年都可能有變化,考號(hào)也就需要靈活地考慮人數(shù)、地域等多方面因素來批量生成.

      考號(hào)的生成是一個(gè)大批量數(shù)據(jù)的操作,需要反復(fù)運(yùn)算并更新數(shù)據(jù)庫中的數(shù)據(jù).如果將考號(hào)的生成完全交由W E B應(yīng)用程序端來處理,這個(gè)系統(tǒng)開銷的代價(jià)是很大的.SQLServer中的存儲(chǔ)過程為解決這一難題提供了高效的解決辦法,僅需由WEB應(yīng)用程序提供少量數(shù)據(jù),SQLServer就能在數(shù)據(jù)庫服務(wù)器端輕易實(shí)現(xiàn)考號(hào)的批量生成.

      2 解決方案

      從遂寧市中考管理系統(tǒng)需求分析來看,考號(hào)要求設(shè)置為14位數(shù)字編碼,其中包含4位年份、4位區(qū)縣編號(hào)、2位考點(diǎn)號(hào)、2位考室號(hào)以及2位座位序號(hào).原則上,同一區(qū)縣內(nèi)單獨(dú)劃分考點(diǎn),有1000名學(xué)生左右的學(xué)??蓡为?dú)設(shè)立一個(gè)考點(diǎn),其他未滿足條件的學(xué)??稍诳h區(qū)或鄉(xiāng)鎮(zhèn)集中設(shè)立考點(diǎn).因此,考點(diǎn)的設(shè)立無法簡(jiǎn)單地由程序自動(dòng)完成,必須由人工設(shè)置.當(dāng)考點(diǎn)確立后,考生對(duì)應(yīng)的考點(diǎn)號(hào)也就隨之確定,其完整考號(hào)的生成也就可以由完全由程序來完成.在該系統(tǒng)中,學(xué)生信息存放在students表,該表包含有學(xué)生所屬學(xué)校號(hào)schId(char(6),前4位為區(qū)縣號(hào),后2位為學(xué)校編號(hào))、考號(hào)applyNum(char(14),初始值Nul l).

      2.1算法思想

      為了給每個(gè)學(xué)生都生成一個(gè)唯一的、順序的考號(hào),從本質(zhì)上講應(yīng)該是對(duì)表中記錄的逐行更新.在SQLServer中,游標(biāo)是逐行操作的典型對(duì)象.不過,在SQLServer中巧妙地應(yīng)用T op關(guān)鍵字同樣可以達(dá)到逐行操作的目的.那T op又將如何實(shí)現(xiàn)逐行的批量操作呢?

      我們知道,T op可用于查詢按照某種順序排列的結(jié)果集中的前n行數(shù)據(jù)記錄.我們將需要進(jìn)行考號(hào)編排的考生結(jié)果集命名為S(其考號(hào)字段值為Nul l),可以通過T op 1從S集合中獲取1行數(shù)據(jù)s對(duì)其進(jìn)行考號(hào)編排,此后s?S;繼續(xù)從stu中獲取1行進(jìn)行考號(hào)編排,以此往復(fù),直到S集合為空.

      2.2核心算法(T-SQL)

      --@i為考室編號(hào)累增器;@exam R oom T otal為本考場(chǎng)最大考室號(hào);@j為座位號(hào)累增器;@exam-R oom S eats T otal為標(biāo)準(zhǔn)考室人數(shù);@currentExam-Num為當(dāng)前運(yùn)算得到的考號(hào);@schI D s需要分配在本考場(chǎng)的學(xué)校號(hào)集合

      3 案例實(shí)現(xiàn)

      按照遂寧市中考管理系統(tǒng)需求分析,可在SQLServer中創(chuàng)建存儲(chǔ)過程,接收考號(hào)年份、學(xué)校號(hào)、考場(chǎng)號(hào)和標(biāo)準(zhǔn)考室人數(shù)四個(gè)參數(shù),按照考號(hào)編排規(guī)則自動(dòng)給指定學(xué)校在分配的考場(chǎng)中批量生成考生考號(hào).應(yīng)用程序端僅需提供相關(guān)參數(shù)即可實(shí)現(xiàn)考號(hào)的批量生成.

      3.1存儲(chǔ)過程的創(chuàng)建

      3.2存儲(chǔ)過錯(cuò)調(diào)用測(cè)試

      3.3結(jié)果驗(yàn)證查詢

      從查詢結(jié)果可以看出,580002和580005兩個(gè)學(xué)校的學(xué)生考號(hào)均已生成,被分配到考場(chǎng)2013580002的不同考室中.

      4 綜述

      綜上所述,在S q l S erver中,能夠通過多重循環(huán)和T op關(guān)鍵字對(duì)數(shù)據(jù)表的多行數(shù)據(jù)逐一進(jìn)行操作,從而在沒有使用游標(biāo)、獨(dú)立于其他程序開發(fā)語言的前提下,實(shí)現(xiàn)了對(duì)考生考號(hào)的逐個(gè)批量生成.這種方法體現(xiàn)了數(shù)據(jù)處理的靈活性和獨(dú)立性,大大提高了數(shù)據(jù)在數(shù)據(jù)庫端處理的效率,有較大的參考和實(shí)用價(jià)值.

      參考文獻(xiàn):

      [1]陳印.存儲(chǔ)過程和游標(biāo)在批量生成學(xué)號(hào)中的應(yīng)用[J].福建電腦,2010,(01).

      [2]胡百敬、姚巧玫.SQLServer 2005數(shù)據(jù)庫開發(fā)詳解[M].北京:電子工業(yè)出版社,2006.

      責(zé)任編輯:張隆輝

      中圖分類號(hào):TP311

      文獻(xiàn)標(biāo)識(shí)碼:B

      文章編號(hào):1672-2094(2013)04-0166-02

      收稿日期:2013-05-18

      作者簡(jiǎn)介:陳?。?979-),男,四川渠縣人,四川職業(yè)技術(shù)學(xué)院計(jì)算機(jī)科學(xué)系講師。研究方向:計(jì)算機(jī)軟件、數(shù)據(jù)庫開發(fā)。

      猜你喜歡
      算法
      基于MapReduce的改進(jìn)Eclat算法
      Travellng thg World Full—time for Rree
      進(jìn)位加法的兩種算法
      基于CC2530的改進(jìn)TPSN算法
      基于BCH和HOG的Mean Shift跟蹤算法
      算法初步兩點(diǎn)追蹤
      基于增強(qiáng)隨機(jī)搜索的OECI-ELM算法
      一種改進(jìn)的整周模糊度去相關(guān)算法
      一種抗CPS控制層欺騙攻擊的算法
      Wiener核的快速提取算法
      金沙县| 龙门县| 抚州市| 镇江市| 五河县| 犍为县| 互助| 股票| 大庆市| 龙门县| 叙永县| 任丘市| 双城市| 定安县| 长岭县| 清丰县| 承德县| 仪征市| 南安市| 博罗县| 肥东县| 长兴县| 上饶县| 镇平县| 西乡县| 绥江县| 普格县| 米易县| 信宜市| 陇川县| 蓬溪县| 田阳县| 精河县| 临海市| 甘孜县| 岢岚县| 吉安市| 福贡县| 鄂伦春自治旗| 澄江县| 辉南县|