sql語(yǔ)言范文

時(shí)間:2023-03-21 09:24:19

導(dǎo)語(yǔ):如何才能寫(xiě)好一篇sql語(yǔ)言,這就需要搜集整理更多的資料和文獻(xiàn),歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。

sql語(yǔ)言

篇1

[關(guān)鍵詞]成績(jī)分析 sql語(yǔ)言

[中圖分類號(hào)]F224.29 [文獻(xiàn)標(biāo)識(shí)碼]A [文章編號(hào)]1009-5349(2014)09-0057-02

SQL(結(jié)構(gòu)化查詢語(yǔ)言)是一種數(shù)據(jù)庫(kù)專用語(yǔ)言,無(wú)論是Oracle、MS SQL、Access還是其他大型公司的數(shù)據(jù)庫(kù),亦或是建立在大型主機(jī)或個(gè)人pc機(jī)上,都可以通過(guò)應(yīng)用SQL語(yǔ)言來(lái)訪問(wèn)或是更新數(shù)據(jù)庫(kù)的內(nèi)容。由于SQL語(yǔ)言通用型強(qiáng),在各個(gè)公司都具有通用性,所以易于學(xué)習(xí)和使用,也逐漸被各種數(shù)據(jù)庫(kù)廠商應(yīng)用,成為一種共通的標(biāo)準(zhǔn)查詢語(yǔ)言。

目前各個(gè)高校幾乎都購(gòu)買了各種教務(wù)管理系統(tǒng),他們是C/S或B/S模式的,教務(wù)管理系統(tǒng)會(huì)關(guān)系到學(xué)生的學(xué)籍、成績(jī)、選課很多方面的內(nèi)容,而且每個(gè)學(xué)校付給開(kāi)發(fā)商的金額也不同,且開(kāi)發(fā)商為了簡(jiǎn)化模式不會(huì)針對(duì)某個(gè)學(xué)校的情況去單獨(dú)開(kāi)發(fā)對(duì)單個(gè)學(xué)校的管理系統(tǒng)或管理軟件,筆者學(xué)校購(gòu)買的教務(wù)管理系統(tǒng)就不能實(shí)現(xiàn)學(xué)分遺留統(tǒng)計(jì)、遺留科目統(tǒng)計(jì),更別提畢業(yè)資格審核的完成,只能通過(guò)SQL語(yǔ)言去實(shí)現(xiàn)這些功能,以下先簡(jiǎn)單地介紹一下SQL語(yǔ)句的基本功能。

一、SQL的基本語(yǔ)句

經(jīng)常使用的SQL語(yǔ)句主要有以下幾種:Select語(yǔ)句、Insert語(yǔ)句、Update語(yǔ)句和Delete語(yǔ)句。

(一)Select語(yǔ)句

1.語(yǔ)法格式

Select[Distinct][Top(數(shù)值)]字段列表From表名[Where條件]

Order By 排序字段名ASC|DESC][Group By 分組字段名][Having 篩選條件表達(dá)式]

2.Select語(yǔ)句的應(yīng)用實(shí)例

①選取數(shù)據(jù)表中的全部數(shù)據(jù):Select * From學(xué)生信息,這就是相當(dāng)于將學(xué)生信息表中的數(shù)據(jù)全部提出來(lái)。

②選取數(shù)據(jù)表中指定字段的數(shù)據(jù):Select學(xué)號(hào)From學(xué)生信息,這就相當(dāng)于將學(xué)生信息從指定的表中提取出來(lái)。

③選取前若干條記錄,且要求查詢結(jié)果按降序排列:Select Top 10學(xué)號(hào)From成績(jī)表,Order By成績(jī)DESC,其中Top 10代表前十個(gè)數(shù)據(jù)的意思;Order by代表排序的意思,DESC代表降序的意思,所以整句化表現(xiàn)的就是取成績(jī)?cè)谇笆膶W(xué)號(hào)。

④根據(jù)特定條件選取數(shù)據(jù)表中的部分?jǐn)?shù)據(jù):Select * From學(xué)生信息,Where班級(jí)= '測(cè)控031',此處的where代表一個(gè)條件的篩選也就是代表班級(jí)為測(cè)控031的學(xué)生信息將全部提出來(lái)。

⑤按關(guān)鍵字查找記錄:例如查詢所有姓“李”的學(xué)生,“%”代表任意字符。Select * From學(xué)生信息,Where姓名Like‘李%'。

⑥查詢符合某種條件的記錄總數(shù):Select Count(*)From學(xué)生信息,Where性別=‘男',此處count()為計(jì)數(shù)函數(shù),本句的意思就是數(shù)男生的數(shù)目。

⑦計(jì)算學(xué)生的平均成績(jī):Select Avg(成績(jī))from成績(jī)表,此處AVG函數(shù)便是求平均值的一個(gè)函數(shù)。

⑧組合查詢:例如在“學(xué)生信息”表中只有“班級(jí)編號(hào)”字段,“班級(jí)名稱”字段在“班級(jí)”表中,如果查詢結(jié)果需要“學(xué)號(hào)、姓名、性別、班級(jí)名稱”等字段,則需要從多個(gè)表中組合查詢。SELECT dbo.學(xué)生信息.學(xué)號(hào),dbo.學(xué)生信息.姓名,dbo.班級(jí).班級(jí)名稱,INNER JOIN dbo.班級(jí) ON dbo.學(xué)生信息.班級(jí)編號(hào)=dbo.班級(jí).班級(jí)編號(hào)。

(二)Insert語(yǔ)句

1.語(yǔ)法格式

Insert Into數(shù)據(jù)表名稱(字段1,字段2, …),Values(字段值1, 字段值2, …)

2.Insert語(yǔ)句的應(yīng)用實(shí)例

Insert Into學(xué)生信息(學(xué)號(hào),姓名,性別,班級(jí)),Values(‘200703020128',‘唐麗',‘女',‘測(cè)控031'),本句的意思就是將新的數(shù)據(jù)信息添加到數(shù)據(jù)庫(kù)中的。

(三)Update語(yǔ)句

1.語(yǔ)法格式

Update數(shù)據(jù)表名,Set字段1=字段值1,字段2=字段值2,[Where 條件]

2.Update語(yǔ)句的應(yīng)用實(shí)例

Update學(xué)生信息,Set學(xué)號(hào)=‘200703020128',姓名=‘張文',性別=‘男',班級(jí)編號(hào)=‘2004030201',Where學(xué)號(hào)=‘200703020128',本句就是將數(shù)據(jù)庫(kù)中學(xué)號(hào)為‘200703020128'的數(shù)據(jù)進(jìn)行更新。

(四)Delete語(yǔ)句

1.語(yǔ)法格式

Delete From數(shù)據(jù)表名稱[Where條件]。

2.Delete語(yǔ)句的應(yīng)用實(shí)例

Delete From學(xué)生信息,Where學(xué)號(hào)=‘200703020128’,該句的意義就是刪掉了學(xué)號(hào)為‘200703020128’的學(xué)生信息。

二、SQL語(yǔ)句的應(yīng)用

本文以提取在校生掛科成績(jī)的數(shù)據(jù)庫(kù)程序?yàn)槔齺?lái)說(shuō)明SQL語(yǔ)言的應(yīng)用。

select BDInstitute.InstituteName as‘學(xué)院',

SMBasicInfo.StudentNo as‘學(xué)號(hào)',

SMBasicInfo.StudentName as‘姓名',

GRGrade.LessonInfoName as‘課程名稱',

max(GRGrade.EffectiveGrade) as‘成績(jī)',

以上這段程序?qū)?shù)據(jù)庫(kù)表中的字段定義為新的字段以便可以更為直觀的顯示給大家。

from

BDClassInfo,

BDInstitute,

BDProfessionInfo,

以上這段程序便是在哪些表中可以找到這些數(shù)據(jù)。

where

BDClassInfo.BDClassInfoID=SMBasicInfo.BDClassInfoID

and BDClassInfo.BDProfessionInfoID=BDProfessionInfo.BDProfessionInfoID

and LCBeginLesson.TermNo=20131

and GRGrade.ExamProperty=‘正常'

and BDClassInfo.EntranceYear in (‘2012',‘2010',

‘2011',‘2013')

and GRGrade.CourseKind=‘選修'

and SMBasicInfo.StudentStatus=‘在籍在校'

以上就是where語(yǔ)句的各種限制條件比如說(shuō)學(xué)籍狀態(tài)為在籍在校、年級(jí)的篩選,等等。

group by

BDClassInfo.EntranceYear,

BDProfessionInfo.ProfessionInfoname,

SMBasicInfo.StudentNo,

SMBasicInfo.StudentName,

GRGrade.LessonInfoName

以上這段程序便是“Group By”的應(yīng)用,從字面意義上理解就是根據(jù)“By”指定的規(guī)則對(duì)數(shù)據(jù)進(jìn)行分組,所謂的分組就是將一個(gè)“數(shù)據(jù)集”根據(jù)分組進(jìn)行處理。

having max(GRGrade.EffectiveGrade)

order by

BDClassInfo.EntranceYear,

BDClassInfo.ClassInfoName,

GRGrade.ExamTermNo,

GRGrade.CourseKind,GRGrade.CreditHour desc

以上便是對(duì)全校學(xué)生不及格成績(jī)進(jìn)行提取的一個(gè)應(yīng)用實(shí)例以便使大家更為清晰的理解。

三、結(jié)論

篇2

一、開(kāi)發(fā)工具介紹

SQL是英文Structured Query Language的縮寫(xiě),意思為結(jié)構(gòu)化查詢語(yǔ)言。SQL語(yǔ)言的主要功能就是同各種數(shù)據(jù)庫(kù)建立聯(lián)系,進(jìn)行溝通。SQL Server是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),它最初是由Microsoft Sybase和Ashton-Tate三家公司共同開(kāi)發(fā)的,于1988年推出了第一個(gè)OS/2 版本,在Windows NT推出后,Microsoft與Sybase在SQL Server的開(kāi)發(fā)上就分道揚(yáng)鑣了,Microsoft將SQL Server移植到Windows NT系統(tǒng)上專注于開(kāi)發(fā)推廣SQL Server的Windows NT版本;Sybase則較專注于SQL Server在UNIX操作系統(tǒng)上的應(yīng)用。SQL Server 2000是Microsoft公司推出的SQL Server數(shù)據(jù)庫(kù)管理系統(tǒng)的最新版本,該版本繼承了SQL Server 7.0 版本優(yōu)點(diǎn)的同時(shí)又比它增加了許多更先進(jìn)的功能,具有使用方便、可伸縮性好、與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行Microsoft Windows 98的膝上型電腦到運(yùn)行Microsoft Windows 2000的大型多處理器的服務(wù)器等多種平臺(tái)使用。

Delphi這個(gè)名字源于古希臘的城市名,它集中了第三代語(yǔ)言的優(yōu)點(diǎn),以O(shè)bject Pascal為基礎(chǔ),擴(kuò)充了面向?qū)ο蟮哪芰?,并且完美地結(jié)合了可視化的開(kāi)發(fā)手段。Delphi自1995年3月一推出就受到了人們的關(guān)注,并在當(dāng)年一舉奪得了多項(xiàng)大獎(jiǎng)。Delphi使用了本地編譯器直接生成技術(shù),使程序的執(zhí)行性能遠(yuǎn)遠(yuǎn)高于其他產(chǎn)品生成的程序,它還是真正的面向?qū)ο蟮木幊陶Z(yǔ)言。Pascal語(yǔ)言的嚴(yán)謹(jǐn)加上可視化的優(yōu)勢(shì)和強(qiáng)大的數(shù)據(jù)庫(kù)功能,使得它有充分的資本和微軟的VB相媲美。Delphi實(shí)際上是Pascal語(yǔ)言的一種版本,但它與傳統(tǒng)的Pascal語(yǔ)言又有天壤之別。一個(gè)Delphi程序首先是應(yīng)用程序框架,而這一框架正是應(yīng)用程序的“骨架”。在骨架上即使沒(méi)有附著任何東西,仍可以嚴(yán)格地按照設(shè)計(jì)運(yùn)行。您的工作只是在“骨架”中加入您的程序,缺省的應(yīng)用程序是一個(gè)空白的窗體,您可以運(yùn)行它,結(jié)果得到一個(gè)空白的窗口。這個(gè)窗口具有Windows窗口的全部性質(zhì):可以被放大縮小、移動(dòng)、最大最小化等,但您卻沒(méi)有編寫(xiě)一行程序。因此,可以說(shuō)應(yīng)用程序框架通過(guò)提供所有應(yīng)用程序共有的東西,為用戶應(yīng)用程序的開(kāi)發(fā)打下了良好的基礎(chǔ)。Delphi是全新的可視化編程環(huán)境,為我們提供了一種方便、快捷的Windows應(yīng)用程序開(kāi)發(fā)工具。它使用了Microsoft Windows圖形用戶界面的許多先進(jìn)特性和設(shè)計(jì)思想,采用了彈性可重復(fù)利用的完整的面向?qū)ο蟪绦蛘Z(yǔ)言、當(dāng)今世界上最快的編輯器、最為領(lǐng)先的數(shù)據(jù)庫(kù)技術(shù)。對(duì)于廣大的程序開(kāi)發(fā)人員來(lái)講,使用Delphi開(kāi)發(fā)應(yīng)用軟件,無(wú)疑會(huì)大大地提高編程效率。

二、方案設(shè)計(jì)

本文借鑒面向?qū)ο蟪绦蛟O(shè)計(jì)的繼承思想,提出使用SQL Server數(shù)據(jù)庫(kù)載入技術(shù)實(shí)現(xiàn)多種語(yǔ)言的切換。(圖1)

此方案把大量多語(yǔ)言數(shù)據(jù)錄入到數(shù)據(jù)庫(kù)中,可縮短可執(zhí)行文件長(zhǎng)度,提高系統(tǒng)啟動(dòng)速度,而且在系統(tǒng)崩潰后,可以使用數(shù)據(jù)庫(kù)恢復(fù)功能,得到原始數(shù)據(jù),從而實(shí)現(xiàn)應(yīng)用軟件界面多種語(yǔ)言的正常切換。

三、關(guān)鍵技術(shù)

(一)數(shù)據(jù)庫(kù)載入技術(shù)。在此方案中,第一,在數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)語(yǔ)言種類編碼表,對(duì)當(dāng)前系統(tǒng)支持的語(yǔ)種進(jìn)行編碼。第二,創(chuàng)建一個(gè)應(yīng)用軟件界面列表,記錄當(dāng)前系統(tǒng)的界面?zhèn)€數(shù),并為每個(gè)界面設(shè)置一個(gè)編碼。第三,創(chuàng)建一個(gè)界面與語(yǔ)種的映射表,記錄每個(gè)界面對(duì)應(yīng)的語(yǔ)種。在系統(tǒng)登陸時(shí)首先選擇語(yǔ)言,登陸成功后,無(wú)論進(jìn)入哪個(gè)窗體界面,都在窗體的Onshow事件里根據(jù)系統(tǒng)當(dāng)前語(yǔ)種編碼查找每個(gè)控件的Caption,更改默認(rèn)為新選擇語(yǔ)種的Caption值。此方案需要在應(yīng)用程序中創(chuàng)建一個(gè)父類窗體,在父類窗體的Onshow事件里寫(xiě)入多語(yǔ)種界面支持程序,其他窗體可以通過(guò)繼承該父類窗體實(shí)現(xiàn)多語(yǔ)種自動(dòng)載入。當(dāng)應(yīng)用程序需要加入新的支持語(yǔ)種時(shí),還需要設(shè)計(jì)一個(gè)專用的界面以提供對(duì)可視化界面窗體的語(yǔ)種配置。

(二)數(shù)據(jù)庫(kù)表結(jié)構(gòu)。在上述數(shù)據(jù)庫(kù)中,用到語(yǔ)種編碼表、窗體信息表、窗體控件語(yǔ)種配置表、Table字段配置表、Table字段列表、提示信息配置表等,以下是窗體信息表、窗體控件語(yǔ)種配置表的數(shù)據(jù)結(jié)構(gòu)。(表1、2)

(三)多語(yǔ)種配置數(shù)據(jù)錄入??梢暬缑嬷С侄嗾Z(yǔ)種的一個(gè)重要方面是多語(yǔ)種數(shù)據(jù)的錄入。假如全部采用手工錄入,工作量將是非常巨大的。圖2所示的專用多語(yǔ)種配置窗體frm_config,把每個(gè)子類窗體多語(yǔ)種界面數(shù)據(jù)錄入數(shù)據(jù)庫(kù),大大減少了錄入工作量。

具體操作步驟:

第一,通過(guò)手工記錄每個(gè)窗體的信息至表1中;第二,在frm_config中用listbox列出表1中記錄的所有窗體,每選中一個(gè)窗體,便自動(dòng)讀出該窗體所有子控件,這里可以使用窗體自帶方法self.Controls[index]來(lái)獲取,Controls[index]數(shù)組包含了該窗體全部子控件。(圖2)

但是,并非所有控件都有Caption,所以需要對(duì)每個(gè)TCon-trol使用(TControl is Tbutton)或(TControl is Tlabel)等進(jìn)行判斷和篩選,具體篩選什么控件,可以根據(jù)可視化應(yīng)用軟件在界面上使用帶有Caption屬性的控件而定。當(dāng)把帶有Caption的控件篩選出來(lái)后,可以用String-Grid組件列出,第一列是原TControl的Caption(默認(rèn)簡(jiǎn)體中文),需要?jiǎng)?chuàng)建新的語(yǔ)種時(shí),根據(jù)默認(rèn)簡(jiǎn)體中文Cap-tion的內(nèi)容,將映射值錄入到對(duì)應(yīng)的第二列,錄入完畢保存到數(shù)據(jù)庫(kù)中。通常需要多語(yǔ)種化的控件如:Tlabel,Tbutton,TDBGrid,TPanel,

Tcheckbox,TRadiobutton,TPopupmenu,Tmainmenu等,這些由可視化應(yīng)用軟件界面的控件使用情況來(lái)確定。

(四)Onshow事件的實(shí)現(xiàn)原理。在父類窗體的Onshow事件中寫(xiě)入的多語(yǔ)種界面支持程序可以在其子類窗體重用,其子類窗體通過(guò)繼承該父類窗體便可以自動(dòng)實(shí)現(xiàn)多語(yǔ)種自動(dòng)載入。OnShow事件實(shí)現(xiàn)原理是:根據(jù)當(dāng)前界面語(yǔ)種編碼和當(dāng)前窗體名稱讀出當(dāng)前窗體內(nèi)控件的多語(yǔ)種配置記錄,根據(jù)每條記錄中控件的類型和名稱,更新控件的Caption為當(dāng)前語(yǔ)種下的值。

(五)DBGrid控件的多語(yǔ)種化。在可視化應(yīng)用軟件界面中,DBGrid控件的多語(yǔ)種化是比較煩瑣的,具體實(shí)現(xiàn)過(guò)程如下:

step1:使用Table字段配置表和Table字段列表記錄需要多語(yǔ)種化的數(shù)據(jù);

step2:定義全局過(guò)程;

step3:過(guò)程調(diào)用。通過(guò)在任何含有DBGrid窗體On-show事件內(nèi)調(diào)用這一過(guò)程,便可實(shí)現(xiàn)DBGrid表格中的多語(yǔ)種化。

上述過(guò)程定義如下:

procedure GP_UpDateTitleCaptionOfDBGrid(DataSet:TDataSet;DBGrid:TwwDBGrid;

TableName:String;xLgCodeID:integer);

//DataSet:相關(guān)數(shù)據(jù)集名

//DBGrid:要更新的數(shù)據(jù)表格控件

//TableName:相關(guān)數(shù)據(jù)庫(kù)表

//xLgCodeID:要更新的語(yǔ)種

(六)提示信息的多語(yǔ)種化。在可視化應(yīng)用軟件中有時(shí)需要給用戶提示信息。對(duì)此,提示信息全部由“提示信息配置表”給出,定義一個(gè)全局動(dòng)態(tài)數(shù)組,在程序啟動(dòng)時(shí),從數(shù)據(jù)庫(kù)中載入xMsg[x]=′MSG′的即是提示信息,調(diào)用提示信息時(shí),只需要知道當(dāng)前使用的是什么語(yǔ)種和信息序號(hào)。對(duì)此筆者設(shè)計(jì)了一個(gè)初始化全局變量的函數(shù):procedureFS_LoadGlobalVar(xLgCode

ID:integer);該函數(shù)執(zhí)行后將會(huì)初始全局消息隊(duì)列(GS_MSG:ar-ray of String)和其他需要從數(shù)據(jù)庫(kù)載入的變量初始值。當(dāng)顯示某個(gè)提示信息時(shí),只需要給出他的序號(hào)。

例如:ShowMessage(GS_MSG[12]);

//第12號(hào)提示信息,各個(gè)語(yǔ)種的第12號(hào)信息含義一致

篇3

關(guān)鍵詞:SQL注入 研究 預(yù)防對(duì)策

隨著互聯(lián)網(wǎng)的發(fā)展,大量的web網(wǎng)站開(kāi)始涌現(xiàn),極大地方便了人們的信息獲取需求。與此同時(shí),黑客針對(duì)網(wǎng)站的攻擊也屢屢出現(xiàn),造成了或多或少的經(jīng)濟(jì)損失現(xiàn)代社會(huì),而近年來(lái)互聯(lián)網(wǎng)技術(shù)的發(fā)展迅猛,以因特網(wǎng)為基礎(chǔ)平臺(tái)的Web應(yīng)用系統(tǒng)在計(jì)算機(jī)的各個(gè)領(lǐng)域都有了越來(lái)越廣泛的用途。譬如企業(yè)的辦公系統(tǒng)以及電子商務(wù)系統(tǒng)等等。這些系統(tǒng)絕大多數(shù)都是采用的HTTP的方式進(jìn)行數(shù)據(jù)的傳遞,然后將這些數(shù)據(jù)相關(guān)組織的數(shù)據(jù)庫(kù)當(dāng)中,這些數(shù)據(jù)對(duì)一些不法分子來(lái)說(shuō)具有非常大的吸引力,這就給數(shù)據(jù)的安全性造成了很大的安全隱患,比較典型的就是SQL的注入。

一、SQL注入

從目前的情況來(lái)看,現(xiàn)在的Web應(yīng)用程序在一般情況下采用的都是依靠數(shù)據(jù)庫(kù)為用戶進(jìn)行寫(xiě)、度數(shù)據(jù)的方法,但是,在另一方面,由于從事程序編程人員的水平參差不齊,絕大多數(shù)編程的工作者沒(méi)有在編寫(xiě)程序的時(shí)候?qū)τ脩魯?shù)據(jù)的合法性進(jìn)行辨別,這就導(dǎo)致在應(yīng)用程序的過(guò)程中出現(xiàn)了安全隱患。SQL注入,簡(jiǎn)單的來(lái)說(shuō),就是不法分子利用高科技手段改變?cè)瓉?lái)數(shù)據(jù)的查詢語(yǔ)句,并把這個(gè)命令提交給服務(wù)器,并在這個(gè)基礎(chǔ)之上執(zhí)行惡意的SQL命令然后不法分子在依據(jù)數(shù)據(jù)返回的結(jié)果中獲取攻擊者想要得到的信息,進(jìn)行下一步的不法活動(dòng)。

(一)關(guān)于SQL的注入原理

眾所周知,SQL注入的目的就是對(duì)數(shù)據(jù)庫(kù)進(jìn)行攻擊,然后在攻擊數(shù)據(jù)庫(kù)的基礎(chǔ)之上在攻擊其所在的服務(wù)器,而這種攻擊的主要方式就是不法分子將代碼在參數(shù)中進(jìn)行植入,而這些參數(shù)會(huì)被植入SQL命令中加已執(zhí)行。例如將惡意的代碼插入到字符串當(dāng)中,然后在這個(gè)基礎(chǔ)之上將這些字符串保存在數(shù)據(jù)庫(kù)當(dāng)中的數(shù)據(jù)表中,或者將其當(dāng)作元數(shù)據(jù),當(dāng)被存儲(chǔ)的字符串植入到動(dòng)態(tài)的SQL命令當(dāng)中來(lái)的時(shí)候,這些惡意的代碼就會(huì)被執(zhí)行。雖然數(shù)據(jù)庫(kù)的類型是多種多樣的,但是SQL注入攻擊的原理和基本過(guò)程確是基本上都一樣的。結(jié)合其他學(xué)者的相關(guān)研究,本文將SQL注入的類別分為用戶登錄類別以及其他類兩種類型。在用戶登錄的類別當(dāng)中,不法分子可以繞過(guò)存在安全隱患的登錄框進(jìn)行登錄,而在其他類別中,其則需要對(duì)攻擊的對(duì)象進(jìn)行更深一步的分析,并對(duì)數(shù)據(jù)庫(kù)的類型有一定的了解,只有通過(guò)這樣的途徑,其才能實(shí)現(xiàn)SQL的注入,也只有在這個(gè)基礎(chǔ)之上才能毒數(shù)據(jù)庫(kù)進(jìn)行攻擊。

我們都知道,SQL的注入對(duì)數(shù)據(jù)庫(kù)的危害是非常大的,攻擊者不僅可以利用已經(jīng)存在的SQL漏洞對(duì)服務(wù)器進(jìn)行攻擊,對(duì)數(shù)據(jù)庫(kù)的敏感信息進(jìn)行盜竊、竊取,甚至還有的不法分子會(huì)對(duì)服務(wù)器的信息進(jìn)行肆意的篡改和刪除,技術(shù)水平高的不法分子還有可能種植后門程序,這種行為導(dǎo)致的最嚴(yán)重的后果就是當(dāng)不法分子一旦獲取該服務(wù)器的最高管理權(quán)限,其就可能實(shí)現(xiàn)整個(gè)操作系統(tǒng)的控制,有的甚至導(dǎo)致系統(tǒng)無(wú)法進(jìn)行日常的運(yùn)行甚至?xí)?dǎo)致整個(gè)系統(tǒng)的癱瘓。

二、關(guān)于SQL注入攻擊的防范措施

(一)參數(shù)化語(yǔ)句

由于數(shù)據(jù)庫(kù)所執(zhí)行的多數(shù)都是由SQL查詢創(chuàng)建成的字符串,因此該構(gòu)造方式極易導(dǎo)致應(yīng)用系統(tǒng)受到SQL注入攻擊。一般情況下,在編程語(yǔ)言和數(shù)據(jù)庫(kù)訪問(wèn)API時(shí),可采用占位符或綁定變量的方法為SQL查詢提供必要參數(shù),以此替代對(duì)用戶輸入進(jìn)行操作。這種稱為參數(shù)化查詢的方法更加安全可靠,它能夠盡可能地避免應(yīng)用中常見(jiàn)的SQL注入漏洞,并可在多數(shù)情況下代替現(xiàn)有的動(dòng)態(tài)查詢,對(duì)一般數(shù)據(jù)庫(kù)來(lái)說(shuō)其效率更高。參數(shù)化查詢語(yǔ)句能夠?yàn)閿?shù)據(jù)庫(kù)提供預(yù)處理語(yǔ)句功能,從而優(yōu)化查詢并進(jìn)一步提高后續(xù)查詢性能

(二)輸入驗(yàn)證

輸入驗(yàn)證是一種功能強(qiáng)大的SQL注入控制手段。所謂輸入驗(yàn)證,就是通過(guò)對(duì)應(yīng)用程序的輸入數(shù)據(jù)進(jìn)行驗(yàn)證,從而保證其符合應(yīng)用程序中已定義標(biāo)準(zhǔn)的過(guò)程。此方法既可以將參數(shù)限制成固定的某種類型,也可以通過(guò)使用正則表達(dá)式或業(yè)務(wù)邏輯進(jìn)行輸入驗(yàn)證。

(三)編碼輸出

篇4

關(guān)鍵詞: Web安全; SQL注入; 漏洞檢測(cè); 攻擊防御

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

文獻(xiàn)標(biāo)志碼:A

文章編號(hào): 2095-2163(2016)06-0087-03

0引言

最近十年來(lái),互聯(lián)網(wǎng)產(chǎn)業(yè)和技術(shù)發(fā)展蓬勃迅速,社會(huì)的各個(gè)領(lǐng)域都已經(jīng)與Web應(yīng)用建立了密切聯(lián)系。使用互聯(lián)網(wǎng)已經(jīng)成為現(xiàn)代生活方式的不二選擇。在全世界,大致可知應(yīng)有數(shù)以億計(jì)的網(wǎng)絡(luò)服務(wù)器都在提供互聯(lián)網(wǎng)服務(wù)。但與此同時(shí),這些網(wǎng)絡(luò)服務(wù)器也無(wú)時(shí)無(wú)刻都會(huì)遭遇到各類惡意攻擊。

數(shù)據(jù)庫(kù)是Web應(yīng)用系統(tǒng)的基礎(chǔ)組成部分,存儲(chǔ)著大量關(guān)鍵敏感信息,因此,侵入和攻擊數(shù)據(jù)庫(kù),竊取數(shù)據(jù)信息是網(wǎng)絡(luò)攻擊的主要目的和施手段。根據(jù)相關(guān)組織調(diào)研數(shù)據(jù)顯示,Web應(yīng)用十大關(guān)鍵風(fēng)險(xiǎn)排名第一位就是注入攻擊。在全世界發(fā)生的Web服務(wù)系統(tǒng)攻擊實(shí)踐中,大約有60%的行為均可標(biāo)注為SQL注入攻擊。因此,研究SQL注入攻擊及檢測(cè)防御技術(shù)對(duì)有效控制和降低網(wǎng)絡(luò)攻擊事件發(fā)生必將具有重大現(xiàn)實(shí)意義及作用。

[BT4]1SQL注入攻擊研究

[BT5]1.1SQL注入攻擊原理

SQL注入攻擊(SQL injection)是利用Web 應(yīng)用程序的設(shè)計(jì)漏洞來(lái)實(shí)現(xiàn)Web應(yīng)用系統(tǒng)、尤其是數(shù)據(jù)庫(kù)的入侵,從而最終達(dá)到獲取或破壞數(shù)據(jù)的一種非法策略及手段。通過(guò)SQL注入可能會(huì)導(dǎo)致如下后果:入侵者惡意進(jìn)占了數(shù)據(jù)庫(kù)服務(wù)器、獲取數(shù)據(jù)庫(kù)高級(jí)操作權(quán)限、竊取數(shù)據(jù)庫(kù)中存儲(chǔ)的關(guān)鍵數(shù)據(jù)信息等。

SQL注入攻擊的發(fā)起者多是利用Web頁(yè)面中存在的漏洞,有針對(duì)性地構(gòu)造SQL語(yǔ)句,并蓄意引導(dǎo)數(shù)據(jù)庫(kù)服務(wù)器執(zhí)行這些SQL語(yǔ)句,通過(guò)截取用戶名和密碼等重要信息,從而全面獲取了數(shù)據(jù)庫(kù)控制權(quán)限。

SQL注入攻擊的可選研究方式主要有:

1)使用注釋符和恒等式;

2)使用union語(yǔ)句進(jìn)行聯(lián)合查詢;

3)使用insert或update語(yǔ)句對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)表內(nèi)數(shù)據(jù)進(jìn)行增加或修改;

4)利用一些內(nèi)置函數(shù)輔助進(jìn)行攻擊等。

在此,將結(jié)合前2種方法給出實(shí)現(xiàn)過(guò)程詳述與闡析。

1.1.1使用注釋符和恒等式

眾所周知,如果要查詢數(shù)據(jù)庫(kù)的user表中所有條目,那么正確的查詢語(yǔ)句為:

SELECT * FROM user WHERE username = 'user' AND password = 'pawd'

利用ASP 實(shí)現(xiàn)時(shí),需要連接字符串,而后再加上SQL 命令,最后執(zhí)行查看返回的結(jié)果是否為空。那么SQL 語(yǔ)句嵌套在ASP 代碼中的表現(xiàn)形式可描述如下:

var sql = "SELECT * FROM user WHERE username = '" +loginname + "' AND密碼 = '" +loginpwd + "'";(loginname字段與loginpwd字段分別存儲(chǔ)了用戶在網(wǎng)頁(yè)上所填入的用戶名和密碼信息。)

但是當(dāng)用戶在Web頁(yè)面文本框內(nèi)輸入的內(nèi)容為:loginname=‘ or 1=1 -- ,而loginpwd 的內(nèi)容任意輸入時(shí),此時(shí)在ASP 中的查詢語(yǔ)句則演變成:

SELECT * FROM user WHERE username=‘’or 1=1 --AND password = 'pawd '

顯然,SQL語(yǔ)句中密碼驗(yàn)證部分被“- -”注釋符當(dāng)成了注釋語(yǔ)句,同時(shí),由于“1=1”恒等式的存在導(dǎo)致用戶名驗(yàn)證部分永遠(yuǎn)為真。用戶名驗(yàn)證和密碼驗(yàn)證均發(fā)生了失效,這樣攻擊者就可以登錄進(jìn)入Web應(yīng)用系統(tǒng)了。

1.1.2使用union語(yǔ)句進(jìn)行聯(lián)合查詢

利用union關(guān)鍵字查詢一些數(shù)據(jù)庫(kù)用戶信息、數(shù)據(jù)庫(kù)版本等信息。還可以用union關(guān)鍵字來(lái)獲取其他信息。通過(guò)頁(yè)面錯(cuò)誤信息提示得到當(dāng)前數(shù)據(jù)庫(kù)名稱、用戶名等關(guān)鍵信息。而且,還可通過(guò)多次的報(bào)錯(cuò)測(cè)試,逐步獲得多種關(guān)鍵數(shù)據(jù)信息,從而掌握數(shù)據(jù)庫(kù)內(nèi)部結(jié)構(gòu)、數(shù)據(jù)庫(kù)用戶名等信息,為侵入數(shù)據(jù)提供實(shí)現(xiàn)基礎(chǔ)。

[BT5]1.2SQL注入攻擊流程

SQL注入攻擊的基礎(chǔ)流程可概述為:首先,檢測(cè)Web登錄頁(yè)面中是否有SQL注入漏洞,從而構(gòu)建SQL注入點(diǎn);其次,利用已經(jīng)構(gòu)建的SQL注入點(diǎn)將本該基于頁(yè)面獲取的驗(yàn)證參數(shù)通過(guò)SQL語(yǔ)句的語(yǔ)法組合傳遞給數(shù)據(jù)庫(kù);然后,經(jīng)過(guò)多次試探,陸續(xù)可得到數(shù)據(jù)庫(kù)類型、數(shù)據(jù)庫(kù)結(jié)構(gòu)、數(shù)據(jù)表信息以及數(shù)據(jù)庫(kù)賬號(hào)等;最后,則根據(jù)已知信息構(gòu)造并執(zhí)行SQL語(yǔ)句,達(dá)到侵入數(shù)據(jù)庫(kù),獲取數(shù)據(jù)或?qū)嵤?shù)據(jù)更改等目的。研究設(shè)計(jì)步驟可展示如下:

[HT5”H][ST5”HZ]步驟1[HT5”SS][ST5”BZ]判斷SQL注入點(diǎn)。通常使用的SQL注入點(diǎn)判斷方法可分述為如下2種:

1)把“’”添加到Web提交請(qǐng)求的尾部,再根據(jù)Web頁(yè)面反饋的提示信息來(lái)判斷該系統(tǒng)所使用的數(shù)據(jù)庫(kù)類型是否存在SQL注入漏洞。

但是,程序設(shè)計(jì)者可以進(jìn)一步通過(guò)加入判別規(guī)則而將單引號(hào)進(jìn)行過(guò)濾,那么將使單引號(hào)測(cè)試最終失效,從而無(wú)法判斷是否存在SQL注入點(diǎn)。

2)將“and 1=1”或“and 1=2”添加到提交請(qǐng)求的末尾,若添加“and 1=1”的提交請(qǐng)求可以正常返回顯示信息、而添加“and 1=2”的提交請(qǐng)求卻返回出錯(cuò)提示,此時(shí)則說(shuō)明該Web頁(yè)面存在注入漏洞;如果上述2個(gè)判別式均可返回提示信息,如此該Web頁(yè)面即是安全的,也就是不存在SQL注入漏洞。

[HT5”H][ST5”HZ]步驟2[HT5”SS][ST5”BZ]猜測(cè)表名和字段名。如果訪問(wèn)的Web頁(yè)面存在注入漏洞,則可以在提交請(qǐng)求語(yǔ)句后加入“and exists (select count(*)from student”,如果頁(yè)面執(zhí)行正常,沒(méi)有錯(cuò)誤提示,則說(shuō)明student表是存在的,否則student表不存在,可以更換名稱繼續(xù)測(cè)試,直到猜出表名為止。

如果將Count(*)替換為Count(字段名),則用同樣的方法即可進(jìn)行字段名的探測(cè)。

[HT5”H][ST5”HZ]步驟3[HT5”SS][ST5”BZ]進(jìn)行注入攻擊。當(dāng)已經(jīng)基本了解數(shù)據(jù)庫(kù)的內(nèi)部結(jié)構(gòu)后,黑客即可侵入后臺(tái)數(shù)據(jù)庫(kù)了。那么,這些黑客所需要的并不是DBA(數(shù)據(jù)庫(kù)管理員)賬號(hào),而是DBA權(quán)限。當(dāng)掌控了DBA權(quán)限后,據(jù)此將可獲得更高級(jí)別的權(quán)限,這樣便可以在Web系統(tǒng)中留下后門、植入木馬等。如果使用sa 連接數(shù)據(jù)庫(kù),則能夠調(diào)用xp_cmdshell 等存儲(chǔ)過(guò)程,此時(shí)就可以對(duì)應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)乃至操作系統(tǒng)進(jìn)行修改和控制了。

[BT4]2SQL注入攻艏觳餳際

根據(jù)檢測(cè)發(fā)生的時(shí)間和目的差異,SQL注入攻擊檢測(cè)可以分成為入侵前檢測(cè)和入侵后檢測(cè)。具體來(lái)說(shuō),利用漏洞掃描工具和構(gòu)造SQL注入語(yǔ)句檢測(cè)即是入侵前檢測(cè)的主要手段,而入侵后檢測(cè)的方法則是檢查服務(wù)器日志文件。通常情況下,入侵者在發(fā)動(dòng)SQL注入攻擊后,Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器的日志文件都會(huì)存有相應(yīng)的登錄和操作記錄?;诖?,研究探討可知,通過(guò)使用如下方法即能改善與增進(jìn)SQL注入漏洞檢測(cè),分析闡釋如下。

1)利用漏洞掃描工具。常用的漏洞掃描工具有:HDSI、NBSI、Domain、Sqlmap、BSQL Hacker、The Mole、Pangolin(穿山甲)。需要指出的是,這些工具既是網(wǎng)站維護(hù)者可以善加利用的一些檢測(cè)工具,同時(shí)卻也是網(wǎng)絡(luò)攻擊者用來(lái)攻擊Web服務(wù)器的首選工具。

2)通過(guò)SQL注入點(diǎn),執(zhí)行非法SQL語(yǔ)句。將SQL語(yǔ)句的永真式或永假式追加在Web頁(yè)面請(qǐng)求后,根據(jù)頁(yè)面執(zhí)行后得到反饋信息來(lái)判斷是否存在SQL注入點(diǎn)。對(duì)已發(fā)現(xiàn)的SQL注入點(diǎn),通過(guò)構(gòu)造and exits(select……)語(yǔ)句進(jìn)行數(shù)據(jù)庫(kù)結(jié)構(gòu)判斷。

3)日志文件檢查。一般情況下,Web應(yīng)用系統(tǒng)遭到入侵后都會(huì)留下相關(guān)操作記錄在日志文件中。通過(guò)讀取并分析數(shù)據(jù)庫(kù)和Web服務(wù)器的日志文件來(lái)判斷系統(tǒng)是否發(fā)生了入侵則是一種行之有效的方法。只是,對(duì)于經(jīng)驗(yàn)老到的黑客來(lái)說(shuō),在實(shí)施入侵后則會(huì)進(jìn)行殘留痕跡的清理。

4)對(duì)訪問(wèn)請(qǐng)求進(jìn)行檢測(cè)。正常的訪問(wèn)請(qǐng)求不應(yīng)該包含SQL關(guān)鍵字?;谶@一前提,如果在HTTP請(qǐng)求中含有SQL關(guān)鍵詞、特殊字符或者SQL語(yǔ)義的句子,即可初步判定為一次攻擊行為。

[JP3]使用頻度通常較高的SQL關(guān)鍵字有:select…from、 order by、union、drop table、exp、md5()、case when then、sleep、substring、user()、password()、version()、 substr()、benchmark()、schema()、--等都可以裁斷為SQL注入攻擊行為。 [JP]

[BT4]3SQL注入攻擊防御技術(shù)

要做到防御SQL注入攻擊,必須從多個(gè)層面設(shè)計(jì)應(yīng)對(duì)策略:第一,從數(shù)據(jù)庫(kù)設(shè)計(jì)和數(shù)據(jù)庫(kù)管理方面;第二,從Web系統(tǒng)開(kāi)發(fā)設(shè)計(jì)方面;第三,從Web系統(tǒng)管理維護(hù)方面。現(xiàn)給出綜合論述如下。

[BT5]3.1數(shù)據(jù)庫(kù)管理防御措施

使用安全的數(shù)據(jù)庫(kù)賬號(hào),嚴(yán)格管控?cái)?shù)據(jù)庫(kù)賬號(hào)權(quán)限,謹(jǐn)慎分配sa權(quán)限,用于程序連接數(shù)據(jù)庫(kù)的用戶使用數(shù)據(jù)庫(kù)用戶角色組的成員,同時(shí)嚴(yán)禁使用服務(wù)器角色組成員。

在數(shù)據(jù)庫(kù)服務(wù)器上刪除多余的擴(kuò)展存儲(chǔ)過(guò)程,尤其是訪問(wèn)注冊(cè)表的存儲(chǔ)過(guò)程。

DBA要將數(shù)據(jù)庫(kù)服務(wù)器上的示例腳本最大限度移除,有效減少冗余腳本數(shù)據(jù)量。

數(shù)據(jù)庫(kù)應(yīng)設(shè)置高強(qiáng)度密碼,提升密碼安全性。

[BT5]3.2Web系統(tǒng)設(shè)計(jì)防御技術(shù)

探尋目前安全問(wèn)題的現(xiàn)象機(jī)理可知,Web系統(tǒng)開(kāi)發(fā)人員應(yīng)建立全局性的安全意識(shí),在設(shè)計(jì)過(guò)程中充分考慮可能出現(xiàn)的安全漏洞,編寫(xiě)安全代碼,防患于未然。

在此基礎(chǔ)上,Web程序設(shè)計(jì)者則應(yīng)保證后臺(tái)研發(fā)程序能夠具備對(duì)用戶提交的訪問(wèn)請(qǐng)求參數(shù)、pose數(shù)據(jù)、查詢關(guān)鍵字進(jìn)行嚴(yán)格檢測(cè)和限制的功能;異常錯(cuò)誤界面可以跳轉(zhuǎn)指定界面,在設(shè)計(jì)上保證不會(huì)將錯(cuò)誤信息暴露給Web系統(tǒng)使用者;而當(dāng)涉及到數(shù)據(jù)庫(kù)訪問(wèn)時(shí),應(yīng)采用加密傳輸,保證絕不使用明文傳遞參數(shù);另外,針對(duì)SQL注入攻擊常用方式,應(yīng)嘗試設(shè)立SQL語(yǔ)句的關(guān)聯(lián)構(gòu)建規(guī)則。

[BT5]3.3系統(tǒng)管理維護(hù)防御措施

系統(tǒng)管理員應(yīng)及時(shí)更新可為Web系統(tǒng)運(yùn)行提供基礎(chǔ)支持的關(guān)鍵軟件,確保攻擊者無(wú)法通過(guò)操作系統(tǒng)漏洞進(jìn)行入侵。此外,應(yīng)關(guān)閉相關(guān)對(duì)外連接端口,如TCP 1433/UDP 1434。系統(tǒng)管理員還應(yīng)定期檢查系統(tǒng)中用戶密碼,提升密碼強(qiáng)度,建立密碼定期更換的長(zhǎng)效機(jī)制。同時(shí),Web系統(tǒng)管員也要定期對(duì)Web系統(tǒng)日志引入安全審核,檢查是否存在異常訪問(wèn)記錄,確保能夠及時(shí)發(fā)現(xiàn)系統(tǒng)安全隱患。

[BT4]4結(jié)束語(yǔ)

作者在本文中介紹了SQL注入攻擊的原理和方法、如何檢測(cè)SQL注入漏洞、怎樣防御SQL注入攻擊方面的內(nèi)容。通過(guò)本文,讀者對(duì)SQL注入建立了一個(gè)全面清晰的認(rèn)識(shí),對(duì)如何檢測(cè)和防御SQL注入攻擊也獲得了基本了解,并掌握了一定的基礎(chǔ)方法及有效防范手段。

當(dāng)前的時(shí)代是一個(gè)互聯(lián)網(wǎng)時(shí)代。網(wǎng)絡(luò)安全問(wèn)題既是互聯(lián)網(wǎng)安全問(wèn)題,也是社會(huì)安全問(wèn)題。作為網(wǎng)絡(luò)中最為常見(jiàn)的攻擊手段,SQL注入攻擊給互聯(lián)網(wǎng)造成了巨大的破壞,也帶來(lái)了難以估量的經(jīng)濟(jì)損失。因而研究實(shí)現(xiàn)有效防御SQL注入攻擊,對(duì)于提升Web網(wǎng)絡(luò)系統(tǒng)的安全性無(wú)論從經(jīng)濟(jì)、社會(huì)、倫理方面都將具有重要意義。

參考文獻(xiàn):

楊章瓊,陳效軍,王濤. SQL注入攻擊淺析[J]. 計(jì)算機(jī)光盤(pán)軟件與應(yīng)用, 2012(16):103-104.

[2] 楊豐嘉. 淺談網(wǎng)站SQL注入攻擊防護(hù)[J]. 計(jì)算機(jī)光盤(pán)軟件與應(yīng)用, 2013(13):144.

[3] 劉秀梅,辛陽(yáng),徐勤. SQL注入攻擊及防御方法研究[EB/OL]. [2016-09-21].http:///releasepaper/content/201609-190.

[4] 龐博,高杰. 基于的SQL注入攻擊與防范[J]. 輕工科技,2009,25(9):86-87.

[5] 齊林,王靜云,蔡凌云,等. SQL注入攻擊檢測(cè)與防御研究[J]. 河北科技大學(xué)學(xué)報(bào), 2012,33(6):530-533.

[6] 鄭斌. 黑客攻防入門與進(jìn)階[M]. 北京:清華大學(xué)出版社,2010.[ZK)]

[FL)]

[CDF61]

[HT5”SS][ST5”BZ][WT5”BZ](上接第86頁(yè))

[FL(2K2]

[HT5”SS]

FETCH ABSOLUTE 3 FROM cur_xg--返回第3行并⑵潯湮當(dāng)前行

UPDATE xsxx SET rxnf=2012--更新當(dāng)前行的列值

WHERE CURRENT OF cur_xg--當(dāng)前游標(biāo)指針?biāo)傅漠?dāng)前行數(shù)據(jù)

CLOSE cur_xg

DEALLOCATE cur_xg

這里需要注意的是,游標(biāo)的第二種應(yīng)用是一種不規(guī)范的更新數(shù)據(jù)的途徑,很容易造成數(shù)據(jù)的不一致,因此通常狀況下并不選用游標(biāo)來(lái)設(shè)計(jì)更新數(shù)據(jù)表中的數(shù)據(jù)。

另外,還需提及的就是,本文實(shí)例所用的數(shù)據(jù)表均基于xxsf(學(xué)校收費(fèi)數(shù)據(jù)庫(kù))中的2個(gè)表,分別是:

xsxx(rxnf,xh,xm,xb,ksh,sfz,zydm,zsid)

zysf(zydm,zymc,lsyx,pycc,xxnx,xfbz,jcfbz)

[BT4]5結(jié)束語(yǔ)

SQL Server中的游標(biāo)在原理上具有C語(yǔ)言指針一樣的語(yǔ)言結(jié)構(gòu),相應(yīng)地則設(shè)計(jì)提供了一種在服務(wù)器內(nèi)部處理結(jié)果集的方法。使用游標(biāo)可以通過(guò)遍歷操作逐一地從結(jié)果集中實(shí)現(xiàn)數(shù)據(jù)讀取,也可以對(duì)結(jié)果集中某些數(shù)據(jù)重點(diǎn)加設(shè)更新或刪除的操作。本文以學(xué)校收費(fèi)數(shù)據(jù)庫(kù)為背景并結(jié)合具體的實(shí)例來(lái)闡述游標(biāo)的使用,游標(biāo)可以面向結(jié)果集中的每一行進(jìn)行相同或不同的操作,這不僅提升了SQL語(yǔ)句處理復(fù)雜查詢的能力,而且還降低了系統(tǒng)開(kāi)銷和潛在的阻隔情況,在一定程度上解決了許多應(yīng)用程序不能把整個(gè)結(jié)果集作為一個(gè)單元來(lái)處理的問(wèn)題。

[HS1*2][HT5H]參考文獻(xiàn):[HT]

[WTBZ][ST6BZ][HT6SS][1] [ZK(#〗

[HJ*2]

趙慧玲,毛應(yīng)爽,孟憲穎. 基于SQL游標(biāo)的研究與應(yīng)用[J]. 科技創(chuàng)新導(dǎo)報(bào),2012(28):31-32.

[2] 劉志成,寧云智,劉釗,編著. SQL Server實(shí)例教程[M]. 北京:電子工業(yè)出版社,2013.

[3] 薛麗香,汪東芳. 淺談SQL Server數(shù)據(jù)庫(kù)中游標(biāo)的使用[J]. 福建電腦,2016(6):157-158.

[4] 陳芳勤. SQL Server 2000中游標(biāo)的應(yīng)用[J]. 中國(guó)科技信息,2008(13):96,99.

篇5

摘 要:這套固定資產(chǎn)管理系統(tǒng)管理范疇相對(duì)全面,覆蓋了固定資產(chǎn)所屬部門和類別、固定資產(chǎn)的各項(xiàng)屬性、折舊計(jì)算以及維修紀(jì)錄等一系列相關(guān)項(xiàng)目。詳細(xì)介紹了SQL數(shù)據(jù)庫(kù)的設(shè)計(jì)過(guò)程,從系統(tǒng)功能的實(shí)現(xiàn)出發(fā),對(duì)系統(tǒng)進(jìn)行了功能模塊分類。最后用圖表的形式把數(shù)據(jù)庫(kù)表達(dá)出來(lái)。

關(guān)鍵詞:數(shù)據(jù)庫(kù);實(shí)體;SQL;

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2007)01―10024-02

1 引言

在成本估算中,固定資產(chǎn)扮演著一個(gè)重要的角色,好的成本估算都會(huì)考慮固定資產(chǎn)對(duì)總成本的各種影響。尤其是初期投入和分期投入大的企業(yè),固定資產(chǎn)的影響對(duì)企業(yè)的生存更是舉足輕重。這套固定資產(chǎn)管理系統(tǒng)負(fù)責(zé)對(duì)企業(yè)和家庭的固定資產(chǎn)做一個(gè)全方位的資金描述。

數(shù)據(jù)是計(jì)算機(jī)化的信息,是計(jì)算機(jī)可以直接處理的最重要的對(duì)象[1]。數(shù)據(jù)庫(kù)是存放數(shù)據(jù)的最佳場(chǎng)所,數(shù)據(jù)庫(kù)是指按特定目的收集的、長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的有組織的可共享的數(shù)據(jù)集合。收集到大量數(shù)據(jù)后.需要一個(gè)軟件系統(tǒng):數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS(Database Management System),對(duì)其進(jìn)行科學(xué)的組織與存儲(chǔ)[2]。固定資產(chǎn)管理系統(tǒng)用以監(jiān)控固定資產(chǎn)的整個(gè)生命期。建立各個(gè)對(duì)象的ER(實(shí)體關(guān)系)模型,將該模型轉(zhuǎn)換成關(guān)系數(shù)據(jù)庫(kù)[3]。關(guān)系數(shù)據(jù)庫(kù)具有嚴(yán)格的實(shí)體關(guān)系,便于擴(kuò)充業(yè)務(wù),同時(shí)便于與管理系統(tǒng)集成[4]。后臺(tái)數(shù)據(jù)庫(kù)采用SQL Server 2000,它是當(dāng)前基于C/S開(kāi)發(fā)模式的主數(shù)據(jù)庫(kù)產(chǎn)品之一,具有性能穩(wěn)定,便于操作維護(hù)和具有安全可靠性等特點(diǎn)[5]。從獲得固定資產(chǎn)開(kāi)始(可以是購(gòu)置或者贈(zèng)送等多種途徑),經(jīng)歷固定資產(chǎn)使用、維修保養(yǎng)的全過(guò)程,直至固定資產(chǎn)報(bào)廢。

2 系統(tǒng)實(shí)現(xiàn)的功能

要對(duì)固定資產(chǎn)進(jìn)行有效的管理,就需要管理固定資產(chǎn)的每一個(gè)方面。固定資產(chǎn)管理的要求基本上可以歸納為以下幾個(gè)方面:

已有固定資產(chǎn)的瀏覽:固定資產(chǎn)的添加、刪除、修改功能:要求對(duì)每個(gè)固定資產(chǎn)的維修、保養(yǎng)進(jìn)行詳細(xì)記錄,固定資產(chǎn)的折舊計(jì)算功能;固定資產(chǎn)的變更功能;固定資產(chǎn)的審核功能;固定資產(chǎn)的統(tǒng)計(jì)功能;相關(guān)部門、類別管理功能;用戶登陸權(quán)限鑒別功能;密碼修改功能;新用戶添加功能。

3 總體設(shè)計(jì)

3.1 數(shù)據(jù)流分析

分析固定資產(chǎn)生命周期中涉及的所有處理過(guò)程.可以得到期間的數(shù)據(jù)流動(dòng)情況。

獲得一項(xiàng)新的固定資產(chǎn),將其信息添加進(jìn)本系統(tǒng);審核,滿足條件則通過(guò)審核,可以參與統(tǒng)計(jì)和折舊;某項(xiàng)固定資產(chǎn)出現(xiàn)破損或者保養(yǎng)期限到,送指定單位維修或保養(yǎng),將相關(guān)信息添加至本管理系統(tǒng);某項(xiàng)固定資產(chǎn)發(fā)生使用權(quán)交移,記錄變更信息:

有財(cái)會(huì)需要,對(duì)部分固定資產(chǎn)進(jìn)行折舊計(jì)算.并導(dǎo)出折舊相關(guān)數(shù)據(jù):有統(tǒng)計(jì)需要,對(duì)部分固定資產(chǎn)進(jìn)行統(tǒng)計(jì),并導(dǎo)出統(tǒng)計(jì)數(shù)據(jù);新建部門,為該部分購(gòu)人固定資產(chǎn)。

固定資產(chǎn)管理數(shù)據(jù)流圖如圖1所示。

數(shù)據(jù)流圖的相關(guān)說(shuō)明:

新固定資產(chǎn)經(jīng)過(guò)添加后可直接進(jìn)入數(shù)據(jù)庫(kù)保存起來(lái),但屬于未審核資產(chǎn),其相關(guān)信息處理可以流向?qū)徍瞬襟E外,不可再流向其它處理步驟。當(dāng)然,在添加新資產(chǎn)的同時(shí)對(duì)于滿足審核條件的固定資產(chǎn),可直接參與審核步驟,然后再保存進(jìn)數(shù)據(jù)庫(kù)中:

當(dāng)已審核的固定資產(chǎn)需要發(fā)生變更時(shí),可經(jīng)過(guò)變更操作,成為未審核資產(chǎn),可以不再做任何處理而存人數(shù)據(jù)庫(kù),也可以經(jīng)過(guò)審核后再存人數(shù)據(jù)庫(kù):

當(dāng)某項(xiàng)固定資產(chǎn)折舊期限到期后,從數(shù)據(jù)庫(kù)中提出來(lái),進(jìn)行折舊計(jì)算,把折舊后的折舊額、原值和殘值等計(jì)算結(jié)果保存回?cái)?shù)據(jù)庫(kù)。

3.2 系統(tǒng)功能設(shè)計(jì)

根據(jù)需求分析得出的結(jié)果,并綜合上文流程分析,可以總結(jié)出系統(tǒng)應(yīng)該具備的功能:

(1)用戶登陸功能

通過(guò)用戶名和密碼對(duì)用戶進(jìn)行驗(yàn)證.合法用戶給予通過(guò).不合法用戶則拒絕其進(jìn)入系統(tǒng)。

(2)固定資產(chǎn)管理功能

對(duì)已有固定資產(chǎn)進(jìn)行修改、刪除和審核,也可以添加新的固定資產(chǎn)進(jìn)來(lái)。

(3)固定資產(chǎn)的查詢功能

按全部、部門和資產(chǎn)類型分別進(jìn)行查詢?yōu)g覽。

(4)部門信息設(shè)置功能

可以對(duì)已有部門進(jìn)行更名和刪除,也可以添加新的部門。

(5)固定資產(chǎn)類別設(shè)置功能

可以對(duì)已有類別進(jìn)行更名和刪除,也可以添加新的類別。

(6)維修管理功能

可以按全部、已經(jīng)送修和維修完畢來(lái)查詢相關(guān)固定資產(chǎn)的維修狀況。還要能夠添加需要維修的固定資產(chǎn)進(jìn)入維修管理。

(7)折舊功能

所有審核過(guò)的固定資產(chǎn)都可以參與折舊計(jì)算。所以有必要把未折舊資產(chǎn)和已折舊資產(chǎn)分開(kāi)顯示。對(duì)于未折舊資產(chǎn)使用某種折舊算法進(jìn)行計(jì)算。

(8)分類統(tǒng)計(jì)輸出功能

實(shí)現(xiàn)按部門資產(chǎn)統(tǒng)計(jì)和按資產(chǎn)類型統(tǒng)計(jì),并且兩種統(tǒng)計(jì)結(jié)果都能夠?qū)С鲋链蛴≡O(shè)備。

(9)修改密碼功能

對(duì)當(dāng)前用戶可以在提交正確舊密碼之后輸入新的密碼.并在下一次登陸系統(tǒng)時(shí)生效。

(10)退出系統(tǒng)功能

3.3 子模塊功能設(shè)計(jì)

以上系統(tǒng)功能設(shè)計(jì)所產(chǎn)生的一系列功能相互之間是離散的.并沒(méi)有邏輯聯(lián)系性。在展開(kāi)進(jìn)一步設(shè)計(jì)之前需要對(duì)整個(gè)系統(tǒng)按照各功能之間隱含的邏輯關(guān)系進(jìn)行劃分子模塊。有三個(gè)子模塊:

(1)系統(tǒng)信息設(shè)置模塊:

其中包括一些跟固定資產(chǎn)信息沒(méi)有直接聯(lián)系的功能,例如部門信息設(shè)置功能、同定資產(chǎn)類別設(shè)置功能、系統(tǒng)用戶管理功能、密碼修改功能和退出系統(tǒng)功能。

(2)固定資產(chǎn)管理模塊:

這是整個(gè)系統(tǒng)的主要模塊,凡是跟固定資產(chǎn)密切相關(guān)的功能都被集成進(jìn)來(lái)了。包括同定資產(chǎn)查詢?yōu)g覽功能、固定資產(chǎn)維修管理功能、同定資產(chǎn)變更功能、固定資產(chǎn)審核功能等等。

(3)固定資產(chǎn)統(tǒng)計(jì)模塊:

部門資產(chǎn)統(tǒng)計(jì)和資產(chǎn)類別統(tǒng)計(jì)。

3.4 系統(tǒng)功能結(jié)構(gòu)圖

同定資產(chǎn)管理系統(tǒng)結(jié)構(gòu)圖如圖2所示。

關(guān)于系統(tǒng)結(jié)構(gòu)圖的一點(diǎn)說(shuō)明:

這個(gè)結(jié)構(gòu)圖能夠直觀地說(shuō)明系統(tǒng)的功能模塊劃分情況,并明確指出了各模塊與數(shù)據(jù)庫(kù)之間的聯(lián)系,除了統(tǒng)計(jì)模塊只向外輸出數(shù)據(jù)外,其它兩個(gè)功能模塊和數(shù)據(jù)庫(kù)之間均存在數(shù)據(jù)的雙向流動(dòng)。而且本網(wǎng)還說(shuō)明了各子模塊相互之間并沒(méi)有橫向的聯(lián)系和數(shù)據(jù)交換存在,這樣設(shè)計(jì)有利于減少模塊之間的耦合度。

3.5 數(shù)據(jù)庫(kù)設(shè)計(jì)

3.5.1 數(shù)據(jù)庫(kù)各實(shí)體及屬性

以下是各實(shí)體及其屬性:

(1)同定資產(chǎn)表(編號(hào)、資產(chǎn)編號(hào)、資產(chǎn)名稱、資產(chǎn)類型編號(hào)、生產(chǎn)廠商、資產(chǎn)型號(hào)、使用日期、使用部門編號(hào)、使用年限、負(fù)責(zé)人員、原值、殘值率、狀態(tài)、增加方式、提交日期、有否折舊、有否審核)

(2)資產(chǎn)修理表(編號(hào)、資產(chǎn)編號(hào)、修理日期、維修單位、維修原因、當(dāng)前狀態(tài)、維修費(fèi)用、維修結(jié)果、提交日期)

(3)部門表(部門編號(hào)、部門名稱)

(4)資產(chǎn)類型表(類型編號(hào)、類型名稱)

(5)用戶表(用戶名、密碼、用戶類型)

3.5.2 E-R圖

E-R圖符號(hào)如圖3所示。

3.5.3數(shù)據(jù)字典及數(shù)據(jù)庫(kù)

可以根據(jù)得到的實(shí)體,建立數(shù)據(jù)字典。數(shù)據(jù)字典是必要的.有了數(shù)據(jù)字典,就能建立數(shù)據(jù)庫(kù)。

(1)固定資產(chǎn)信息表Asserts

篇6

關(guān)鍵詞:維修;數(shù)據(jù);信息;網(wǎng)絡(luò)化;維修管理系統(tǒng);SQL Server 2000

中圖分類號(hào):TP311.52文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1007-9599 (2011) 24-0000-01

Maintenance Information Management System R&D Analysis Based on ASP+SQL

Huang Hui

(East China University of Science and Technology,Shanghai200237,China)

Abstract:Starting from the actual requirements of a maintenance information management,detailed system investigation,the use of ASP,SQL Server2000 software building ASP-based information management system.The system adopts B/S mode,use the advanced technology of the SQL database access Web database application system,an online maintenance system of information retrieval,entry,modification,statistics,tables and permission settings,user help,record maintenance and other functions.

Keywords:Maintenance;Data;Information;Network;Maintenance management system;SQL Server 2000

一、引言

近年來(lái),隨著我國(guó)信息技術(shù)的飛速發(fā)展,計(jì)算機(jī)應(yīng)用已逐漸滲透到各個(gè)領(lǐng)域。通過(guò)使用計(jì)算機(jī)可以減少大量的人工操作,提高工作效率。很多企業(yè)都在開(kāi)發(fā)自己的管理系統(tǒng),以便對(duì)本單位的基本信息和各項(xiàng)工作進(jìn)行計(jì)算機(jī)管理。而利用計(jì)算機(jī)來(lái)管理信息和處理信息,就需要利用數(shù)據(jù)庫(kù)管理系統(tǒng)軟件來(lái)開(kāi)發(fā)各個(gè)行業(yè)的實(shí)用軟件,在企業(yè)管理領(lǐng)域內(nèi),計(jì)算機(jī)的應(yīng)用已經(jīng)相當(dāng)廣泛,各種管理機(jī)制與企業(yè)運(yùn)作流程都與計(jì)算機(jī)緊密結(jié)合在一起,計(jì)算機(jī)的應(yīng)用進(jìn)一步完善了企業(yè)的管理,提高了企業(yè)的現(xiàn)代化管理形象,因此在此基礎(chǔ)上開(kāi)發(fā)了企業(yè)維修管理系統(tǒng)這個(gè)軟件。

二、Windows下的ASP開(kāi)發(fā)平臺(tái)

Microsoft Windows軟件的出現(xiàn),為PC用戶提供了一個(gè)直觀的、圖形豐富的工作環(huán)境。圖形用戶界面使應(yīng)用程序更易于學(xué)習(xí)和使用,用戶只要簡(jiǎn)單地用鼠標(biāo)按鈕點(diǎn)按“菜單”中的命令就可以執(zhí)行指定的操作,而不必鍵入復(fù)雜的命令。屏幕上的多窗口可以使用戶同時(shí)運(yùn)行多個(gè)程序,并可以通過(guò)對(duì)話框輸入所需要的信息或讓用戶選擇。

ASP技術(shù)ASP(Active Server Pages動(dòng)態(tài)網(wǎng)頁(yè))是微軟公司推出的一種用以取代CGI(Common Gateway Interface通用網(wǎng)關(guān)接口)的技術(shù)。目前,Internet上的許多基于Windows平臺(tái)的Web站點(diǎn)已開(kāi)始應(yīng)用ASP來(lái)替換CGI。簡(jiǎn)單地講,ASP是一個(gè)位于服務(wù)器端的腳本運(yùn)行環(huán)境,通過(guò)這種環(huán)境,用戶可以創(chuàng)建和運(yùn)行動(dòng)態(tài)的交互式Web服務(wù)器應(yīng)用程序,如交互式動(dòng)態(tài)網(wǎng)頁(yè),包括使用HTML表單收集和處理信息,上傳與下載等等。

三、用戶需求分析

要開(kāi)發(fā)一個(gè)網(wǎng)絡(luò)化的信息管理系統(tǒng),首先需要進(jìn)行需求分析和總體設(shè)計(jì),分析系統(tǒng)的使用對(duì)象和用戶需求,設(shè)計(jì)系統(tǒng)的體系結(jié)構(gòu)和數(shù)據(jù)庫(kù)結(jié)構(gòu),決定使用的開(kāi)發(fā)工具和后臺(tái)數(shù)據(jù)庫(kù),規(guī)劃項(xiàng)目開(kāi)發(fā)速度。在實(shí)際的項(xiàng)目開(kāi)發(fā)過(guò)程中,這些工作是非常重要的。

開(kāi)發(fā)此維修信息管理系統(tǒng)軟件,以供企業(yè)相關(guān)人員如進(jìn)行維修信息管理,維修管理系統(tǒng)的用戶是企業(yè)管理人員、企業(yè)負(fù)責(zé)人、維修人員、錄入員、相關(guān)單位的統(tǒng)計(jì)人員等等,方便各人員隨時(shí)修改、刪除、查詢各種信息。具體體現(xiàn)在各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫(kù)結(jié)構(gòu)能充分滿足各種信息的輸出和輸入。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計(jì)打下基礎(chǔ)。

四、系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)

在維修管理系統(tǒng)中,用戶管理模塊的功能比較簡(jiǎn)單。在系統(tǒng)初始化時(shí),有三種默認(rèn)的用戶。系統(tǒng)超級(jí)管理員用戶名為Super,一般管理員用戶名位Admin,普通用戶為Users,由程序設(shè)計(jì)人員手動(dòng)的添加到數(shù)據(jù)庫(kù)中,超級(jí)用戶可以創(chuàng)建用戶、修改用戶信息以及刪除用戶;一般管理員只能操作部分相關(guān)信息,而普通用戶則只能查看有關(guān)信息。

五、系統(tǒng)總體設(shè)計(jì)

(一)系統(tǒng)總體功能設(shè)計(jì)。系統(tǒng)主要由基本信息維護(hù)、服務(wù)信息維修信息錄入、車況登記、數(shù)據(jù)庫(kù)管理、權(quán)限管理、登錄界面等系統(tǒng)管理等幾大模塊組成。通過(guò)該信息平臺(tái),各類人員可以通過(guò)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)讀取、錄入、查詢、修改、刪除、打印等各類管理事務(wù)工作,管理層可以及時(shí)了解各項(xiàng)事務(wù),根據(jù)相應(yīng)的工作計(jì)劃,定期上傳的各類工作數(shù)據(jù),填寫(xiě)各類維修數(shù)據(jù),統(tǒng)計(jì)各種相關(guān)報(bào)表,查看數(shù)據(jù)、報(bào)表文件、人員工作業(yè)績(jī)、進(jìn)行各地區(qū)間的業(yè)績(jī)?cè)u(píng)比和交流信息等。

(二)系統(tǒng)功能模塊設(shè)計(jì)。系統(tǒng)的操作界面分為三類:用戶操作界面、一般管理員界面、超級(jí)管理員界面。同時(shí)超級(jí)管理員可以將一般管理員的權(quán)限進(jìn)行相應(yīng)調(diào)整,做到分工明確、操作方便、管理有效的特點(diǎn)。用戶界面只允許用戶進(jìn)行查詢操作,了解一些工作動(dòng)態(tài),加大了部門之間、職工之間的聯(lián)系,提高了工作的透明度,有利于提高工作效率。

六、運(yùn)用ASP技術(shù)操作數(shù)據(jù)

(一)建立連接。利用SqlConnection對(duì)象的ConnectionString屬性可指定連接參數(shù)。

(二)數(shù)據(jù)信息錄入。利用原有系統(tǒng)的部分有用數(shù)據(jù)進(jìn)行數(shù)據(jù)庫(kù)間轉(zhuǎn)換,節(jié)約人力和重復(fù)錄入數(shù)據(jù)的人員浪費(fèi),節(jié)約了有效的資金使用,完成了從老系統(tǒng)到新系統(tǒng)的平穩(wěn)過(guò)渡。

(三)更新、刪除、插入操作。系統(tǒng)數(shù)據(jù)的更新和維護(hù)是通過(guò)管理員登錄相應(yīng)的管理頁(yè)面,通過(guò)網(wǎng)頁(yè)界面將新數(shù)據(jù)或修改后的保存至數(shù)據(jù)庫(kù)中實(shí)現(xiàn)的。利用SqlCommand對(duì)象設(shè)置相應(yīng)的SQL命令來(lái)完成相應(yīng)的操作。例:執(zhí)行查詢SQL的語(yǔ)句,返回一個(gè)數(shù)據(jù)表:

七、系統(tǒng)安全的策略

為了保證系統(tǒng)的安全,本系統(tǒng)采用MD5加密認(rèn)證,以及用戶提供的與應(yīng)用程序有關(guān)的數(shù)據(jù)。提供良好的用戶編程接口以便于快速開(kāi)發(fā)安全的有效登錄解決方案。

八、結(jié)束語(yǔ)

基于ASP的維修信息管理系統(tǒng)于2010年11月設(shè)計(jì)完成,之后為3個(gè)月的試用期。在試用期間,系統(tǒng)運(yùn)行穩(wěn)定、安全性好,使相關(guān)使用人員能夠從繁瑣的數(shù)據(jù)管理與紙介翻閱中解放出來(lái),提高了效率。同時(shí)也為公司管理層查閱個(gè)人維修資料和了解各種維修服務(wù)信息提供了方便,可以更好、更快進(jìn)行數(shù)據(jù)上報(bào)、資料檢查和匯總材料上繳。該系統(tǒng)基本符合用戶需求并具有良好的可擴(kuò)展性和模塊性,可以方便地組合各個(gè)模塊,也可以增加更多的功能模塊,以滿足各類信息管理的特定需求。

參考文獻(xiàn):

[1]張巨儉,甘仞初.管理信息系統(tǒng)的發(fā)展方向及實(shí)現(xiàn)技術(shù)[J].計(jì)算機(jī)應(yīng)用研究,2003,1

篇7

一、《數(shù)據(jù)庫(kù)應(yīng)用技術(shù)-SQL Server》教學(xué)存在的問(wèn)題

教材偏重理論知識(shí)?!稊?shù)據(jù)庫(kù)應(yīng)用技術(shù)-SQL Server》是一門注重實(shí)踐、注重操作的課程,從當(dāng)前的教材內(nèi)容來(lái)看,教材中的理論知識(shí)部分非常多,而實(shí)踐部分的介紹比較少,內(nèi)容過(guò)于膚淺,導(dǎo)致教師在組織教學(xué)內(nèi)容時(shí)難以找到更多的實(shí)踐知識(shí)和內(nèi)容。關(guān)于SQL Server數(shù)據(jù)庫(kù)應(yīng)用技術(shù)需要扎實(shí)的數(shù)據(jù)庫(kù)理論做支撐,然而理論知識(shí)過(guò)多實(shí)踐內(nèi)容較少會(huì)使得學(xué)生難以理解和接受。

實(shí)驗(yàn)項(xiàng)目?jī)?nèi)容單調(diào)。根據(jù)歷年來(lái)我校畢業(yè)論文的完成情況來(lái)看,用到SQL Server來(lái)做的數(shù)據(jù)庫(kù)基本相同,僅是添加幾張表格,卻不會(huì)應(yīng)用 SQL Server中的存儲(chǔ)過(guò)程、觸發(fā)器等資源。根據(jù)我校實(shí)驗(yàn)項(xiàng)目的內(nèi)容來(lái)看,其實(shí)原內(nèi)容基本來(lái)自教材,項(xiàng)目操作流于形式,但實(shí)際的實(shí)驗(yàn)教學(xué)實(shí)踐中,學(xué)生很少參加實(shí)驗(yàn)練習(xí),學(xué)不到真正的操作知識(shí)和操作本領(lǐng),導(dǎo)致了畢業(yè)設(shè)計(jì)作品過(guò)于雷同、單調(diào),絕大多數(shù)的畢業(yè)設(shè)計(jì)缺少實(shí)際的內(nèi)容。

教學(xué)手段單調(diào),缺乏良性互動(dòng)。當(dāng)前我校教師均借助多媒體開(kāi)展教學(xué),這也成為了一種習(xí)慣,使得教師們完全依賴多媒體課件,采用這樣的教學(xué)手段使得學(xué)生們?cè)趯W(xué)習(xí)知識(shí)的時(shí)候顯得非常被動(dòng),隨著多媒體課件的迅速翻篇,學(xué)生很少有思考的時(shí)間,也難以和教師就某些知識(shí)點(diǎn)進(jìn)行互動(dòng),學(xué)生也很難完整記錄課件中的代碼,導(dǎo)致學(xué)生動(dòng)手能力差,在真正自己做項(xiàng)目時(shí)缺乏相應(yīng)的能力。

課程考核效率低?!稊?shù)據(jù)庫(kù)應(yīng)用技術(shù)-SQL Server》課程考核采取平時(shí)+實(shí)驗(yàn)+期末的成績(jī)考核方式,考核方式表面上合理,然而在實(shí)際的操作環(huán)節(jié),實(shí)驗(yàn)成績(jī)部分是根據(jù)平時(shí)成績(jī)來(lái)定,使得考核非常模糊,根據(jù)期末考試的內(nèi)容來(lái)看,考試內(nèi)容分為客觀題和主觀題,主觀題中有問(wèn)答、程序填空和分析程序部分,沒(méi)有寫(xiě)代碼的題目,這樣的考試內(nèi)容并不能檢驗(yàn)出學(xué)生一是否,會(huì)自己獨(dú)立寫(xiě)代碼。

二、《數(shù)據(jù)庫(kù)應(yīng)用技術(shù)-SQL Server》課堂教學(xué)改革與實(shí)踐對(duì)策

1.合理安排教材和教學(xué)內(nèi)容

在有條件的情況下可以重新編排《數(shù)據(jù)庫(kù)應(yīng)用技術(shù)-SQL Server》課程教材,結(jié)合數(shù)據(jù)庫(kù)原理與應(yīng)用技術(shù),改編教材中偏重理論知識(shí)的情況,加強(qiáng)數(shù)據(jù)庫(kù)實(shí)用技術(shù)部分的內(nèi)容。由于SQL Server 數(shù)據(jù)庫(kù)理論知識(shí)部分是SQL Server 數(shù)據(jù)庫(kù)實(shí)用技術(shù)的基礎(chǔ),在教材內(nèi)容設(shè)置方面,需要靈活安排教材內(nèi)容,對(duì)各知識(shí)點(diǎn)和各章節(jié)的順序進(jìn)行適當(dāng)調(diào)整,例如在理論知識(shí)講解完以后適當(dāng)加入技術(shù)應(yīng)用部分的練習(xí),又或者在后期的SQL Server 數(shù)據(jù)庫(kù)技術(shù)之前回顧相應(yīng)的數(shù)據(jù)庫(kù)原理知識(shí),通過(guò)這樣的教學(xué)內(nèi)容的安排促進(jìn)學(xué)生對(duì)知識(shí)理論的學(xué)以致用。

若不能重新改編教材,教師則需要根據(jù)這樣的思路靈活布置教學(xué)內(nèi)容,例如在數(shù)據(jù)庫(kù)設(shè)計(jì)的教學(xué)內(nèi)容中,就是應(yīng)該先導(dǎo)入關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論部分的知識(shí),然后再進(jìn)行關(guān)系模式設(shè)計(jì)的學(xué)習(xí),并讓學(xué)生根據(jù)相應(yīng)的范式要求完成關(guān)系模式設(shè)計(jì),讓學(xué)生溫故知新、理論應(yīng)用到實(shí)際、學(xué)以致用。SQL 語(yǔ)言在實(shí)際應(yīng)用中有很大的區(qū)別,這要根據(jù)不同的數(shù)據(jù)庫(kù)管理系統(tǒng)選擇Transact-SQL 語(yǔ)言,由此,教學(xué)內(nèi)容應(yīng)加強(qiáng)Transact-SQL 語(yǔ)言的講解,并加深學(xué)生對(duì)SQL Server 數(shù)據(jù)庫(kù)的環(huán)境配置與應(yīng)用技術(shù)的學(xué)習(xí)和掌握。

由于本課程的目的在于培養(yǎng)學(xué)生的 SQL Server 數(shù)據(jù)庫(kù)設(shè)計(jì)和開(kāi)發(fā)能力,若只是根據(jù)傳統(tǒng)的教學(xué)內(nèi)容實(shí)施教學(xué),必定會(huì)導(dǎo)致學(xué)生對(duì)技術(shù)知識(shí)方面的欠缺,使得前臺(tái)開(kāi)發(fā)語(yǔ)言連接到數(shù)據(jù)庫(kù)這部分技術(shù)知識(shí)不能銜接,最終不利于學(xué)生在軟件開(kāi)發(fā)能力方面的培養(yǎng)。由此,必須要通過(guò)整合程序設(shè)計(jì)類課程的教學(xué)內(nèi)容,加強(qiáng)常用軟件開(kāi)發(fā)工具所對(duì)于的SQL Server 數(shù)據(jù)庫(kù)技術(shù)。例如在案例教學(xué)中,需要對(duì)JAVA 程序、網(wǎng)站建設(shè)、.net 開(kāi)發(fā)技術(shù)等設(shè)計(jì)編程部分加強(qiáng)相應(yīng)的技術(shù)講解,同時(shí)加強(qiáng)綜合設(shè)計(jì)性實(shí)驗(yàn)的相關(guān)訓(xùn)練,在數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)中提升實(shí)操能力。

2.創(chuàng)新教學(xué)方法

由于采用多媒體的教學(xué)手段的單一使得學(xué)生不能學(xué)到連貫的知識(shí)和技術(shù),并且沒(méi)有考慮到學(xué)生的主體地位,缺乏課堂互動(dòng)與反饋,導(dǎo)致低效的教學(xué)效率。由此,以教師為主導(dǎo)的課堂教學(xué)要充分發(fā)揮教師的教學(xué)創(chuàng)新,采取項(xiàng)目教學(xué)法加強(qiáng)SQL Server各個(gè)知識(shí)點(diǎn)的講解應(yīng)用,最大限度地調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性與主動(dòng)性,讓學(xué)生獨(dú)立解決問(wèn)題。

項(xiàng)目教學(xué)法。在整個(gè)教學(xué)過(guò)程中,用實(shí)際項(xiàng)目貫穿課程,讓學(xué)生學(xué)會(huì)項(xiàng)目需求分析,以此完成后期的概念、邏輯、物理等結(jié)構(gòu)的設(shè)計(jì),從而開(kāi)展數(shù)據(jù)庫(kù)的實(shí)施、運(yùn)行和維護(hù),加強(qiáng)學(xué)生對(duì)項(xiàng)目運(yùn)作過(guò)程的熟練程度,提升學(xué)生對(duì)相關(guān)操作的掌握。

任務(wù)驅(qū)動(dòng)法。目前在很多課程中都采用任務(wù)驅(qū)動(dòng)法促進(jìn)學(xué)生的自主學(xué)習(xí)。在本課程中,教師圍繞一個(gè)具體的數(shù)據(jù)庫(kù)系統(tǒng)布置的相應(yīng)的具體任務(wù),讓學(xué)生做好課前預(yù)習(xí)和思考,在上課時(shí)教師進(jìn)行啟發(fā)式提問(wèn),并在課后又再一次布置任務(wù)讓學(xué)生加強(qiáng)練習(xí)和預(yù)習(xí)。在課堂前、課堂中以及課堂后的每一個(gè)任務(wù)都有一定的銜接性和關(guān)聯(lián),而學(xué)生也在任務(wù)驅(qū)動(dòng)下的帶著目的去相互協(xié)作和互動(dòng),提升其對(duì)學(xué)習(xí)的興趣、主動(dòng)性和成就感。

互動(dòng)教學(xué)法。該教學(xué)法貫穿在本課程的所有課堂教學(xué)中,要通過(guò)教師和學(xué)生之間平等互動(dòng)交流得以實(shí)現(xiàn),構(gòu)建以學(xué)生為主體的課程教學(xué),讓學(xué)生主動(dòng)掌握知識(shí)、主動(dòng)學(xué)習(xí)。在網(wǎng)絡(luò)時(shí)代,各種課程平臺(tái)相繼建立,例如云班課、微信平臺(tái)、微博平臺(tái)、班級(jí)QQ等,這些都是學(xué)生課下互動(dòng)的學(xué)習(xí)平臺(tái),此時(shí)教師應(yīng)主動(dòng)加入學(xué)生的課后互動(dòng)中,及時(shí)為學(xué)生答疑解惑,同時(shí)獲得學(xué)習(xí)反饋,便于做好課程教學(xué)的調(diào)整。此外教師也可以通過(guò)這些平臺(tái)上傳學(xué)?資料和軟件項(xiàng)目制作案例,讓學(xué)生的學(xué)習(xí)更加便利,幫助學(xué)生掌握知識(shí)。

3.加強(qiáng)實(shí)踐教學(xué),完善考核體系

本課程的實(shí)驗(yàn)課時(shí)為48課時(shí),旨在通過(guò)實(shí)驗(yàn)訓(xùn)練學(xué)生的操作能力和知識(shí)運(yùn)用能力。本教學(xué)環(huán)節(jié)在于考察學(xué)生對(duì)SQL Server 數(shù)據(jù)庫(kù)理論知識(shí)和相應(yīng)的技術(shù)應(yīng)用的情況,會(huì)在上課期間為學(xué)生布置一個(gè)大作業(yè),根據(jù)學(xué)生作業(yè)完成情況、實(shí)驗(yàn)表現(xiàn)、實(shí)驗(yàn)報(bào)告、動(dòng)手能力來(lái)給出成績(jī),完成本環(huán)節(jié)的考核。這樣的綜合考核方式能夠較為全面地考核學(xué)生,促進(jìn)其學(xué)習(xí)的信心和熱情。整個(gè)實(shí)驗(yàn)環(huán)節(jié)需要注意以下工作:

每一個(gè)實(shí)驗(yàn)項(xiàng)目都要做好精心設(shè)計(jì),安排學(xué)生預(yù)習(xí)相關(guān)理論和操作內(nèi)容,但實(shí)驗(yàn)過(guò)程中為學(xué)生做好相關(guān)的操作示范,全程認(rèn)真指導(dǎo),及時(shí)對(duì)學(xué)生的操作給予反饋,激勵(lì)其學(xué)習(xí)。在整個(gè)操作過(guò)程中應(yīng)強(qiáng)調(diào)協(xié)作、互動(dòng),對(duì)數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)的合理性、缺陷、改進(jìn)方案、注意事項(xiàng)進(jìn)行探討,提升學(xué)生的互助、溝通、分析和解決問(wèn)題的能力。實(shí)驗(yàn)過(guò)程中所布置的大作業(yè)由2~3人一組協(xié)作完成,限定2周時(shí)間,題目范圍是數(shù)據(jù)庫(kù)管理系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)。這樣的一個(gè)訓(xùn)練作業(yè)起到了整合程序設(shè)計(jì)類課程知識(shí)技能的作用,根據(jù)作業(yè)中學(xué)生所學(xué)開(kāi)發(fā)設(shè)計(jì)工具的應(yīng)用訓(xùn)練,促進(jìn)學(xué)生的綜合能力。

篇8

關(guān)鍵詞:Java語(yǔ)言 數(shù)據(jù)庫(kù)操作 方法

中圖分類號(hào):TP311.13 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2013)10-0042-02

在任何計(jì)算機(jī)語(yǔ)言中數(shù)據(jù)庫(kù)都占據(jù)很重要的位置,可以說(shuō)如果沒(méi)有數(shù)據(jù)庫(kù)就沒(méi)有計(jì)算機(jī)語(yǔ)言的應(yīng)用,對(duì)于Java語(yǔ)言中也是如此。當(dāng)前主流應(yīng)用的數(shù)據(jù)庫(kù)服務(wù)器主要有,微軟(MicroSoft)開(kāi)發(fā)的SQL Server數(shù)據(jù)庫(kù)、甲骨文(ORACLE)公司的MySQL數(shù)據(jù)庫(kù)和Oracle數(shù)據(jù)庫(kù)等,使用Java編程語(yǔ)言連接SQL Server數(shù)據(jù)庫(kù)時(shí),需要比較繁雜的系統(tǒng)環(huán)境配置,所以,在使用Java語(yǔ)言編寫(xiě)應(yīng)用程序時(shí),在數(shù)據(jù)庫(kù)服務(wù)器的選擇方面,多使用MySQL數(shù)據(jù)庫(kù)或Oracle數(shù)據(jù)庫(kù)。其中,中小型項(xiàng)目的開(kāi)發(fā)一般多選用MySQL數(shù)據(jù)庫(kù),在大型項(xiàng)目在開(kāi)發(fā)中,大多選用Oracle數(shù)據(jù)庫(kù)。

在Java語(yǔ)言中,要對(duì)數(shù)據(jù)庫(kù)進(jìn)行顯示、增加、修改、刪除等操作,主要采用JDBC(Java DataBase Connection)技術(shù)。這種技術(shù)為開(kāi)發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API接口,程序員通過(guò)調(diào)用純Java API來(lái)編寫(xiě)調(diào)用數(shù)據(jù)庫(kù)在應(yīng)用程序。除此之外,還可以通過(guò)編寫(xiě)程序調(diào)用JDBC的API,比較容易的實(shí)現(xiàn)對(duì)不同數(shù)據(jù)庫(kù)的訪問(wèn)。

在計(jì)算機(jī)語(yǔ)言的學(xué)習(xí)過(guò)程中,對(duì)于大多數(shù)人來(lái)說(shuō)數(shù)據(jù)庫(kù)的連接和操作是一個(gè)難點(diǎn),筆者在多年的Java語(yǔ)言實(shí)踐中積累的連接和操作數(shù)據(jù)庫(kù)的方法和技巧與大家一起分享。

1 Java連接MySQL數(shù)據(jù)庫(kù)的方法

使用Java語(yǔ)言訪問(wèn)多種不同數(shù)據(jù)庫(kù)的時(shí)候,可以通過(guò)編寫(xiě)JDBC API調(diào)用來(lái)實(shí)現(xiàn),在連接不同數(shù)據(jù)庫(kù)在時(shí)候,安裝相應(yīng)的驅(qū)動(dòng)程序即可。例如:要連接MySQL數(shù)據(jù)庫(kù),就需要安裝MySQL數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序“mysql-connector-java.jar”,這些驅(qū)動(dòng)程序大多椒開(kāi)源的,一般可以到官網(wǎng)或互聯(lián)網(wǎng)上下載。下載后的驅(qū)動(dòng)程序存放的位置有要求,如果你沒(méi)有使用開(kāi)放的開(kāi)發(fā)環(huán)境,那么要將驅(qū)動(dòng)程序存放在JDK安裝目錄下的lib文件夾中;如果你使用了Eclipse或其它的開(kāi)發(fā)環(huán)境,那么要在這些環(huán)境中配置JDK的位置將驅(qū)動(dòng)程序?qū)氲嚼锩妗?/p>

安裝完成數(shù)據(jù)庫(kù)在驅(qū)動(dòng)程序之后,就可以編寫(xiě)程序來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的連接。

(1)Class.forName(“com.mysql.jdbc.Driver”);

//此步驟為驅(qū)動(dòng)程序的加載,另外驅(qū)動(dòng)程序的名字還可以為org.gjt.mm.mysql.Driver。

(2)Connection con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/數(shù)據(jù)庫(kù)名字”,“用戶名”,“密碼”);

//創(chuàng)建與數(shù)據(jù)庫(kù)的連接

通過(guò)以上兩步驟后即可以完成與數(shù)據(jù)庫(kù)的連接,上面代碼1中forName()方法會(huì)拋出ClassNotFoundException,代碼2中g(shù)etConnection()方法會(huì)拋出SQLException異常,所以在程序中要進(jìn)行異常的捕獲與處理。

2 數(shù)據(jù)庫(kù)連接的技巧

2.1 數(shù)據(jù)庫(kù)連接代碼的復(fù)用

在一個(gè)項(xiàng)目開(kāi)發(fā)過(guò)程中,需要經(jīng)常的對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,那么我們不能在一個(gè)項(xiàng)目中多次寫(xiě)相同的代碼,這樣不利于代碼的更新與維護(hù),所以我們可以將連接數(shù)據(jù)庫(kù)的代碼單獨(dú)的寫(xiě)在一個(gè)Java文件的構(gòu)造方法中,這樣在需要進(jìn)行數(shù)據(jù)庫(kù)連接時(shí)生成該類的對(duì)象即可調(diào)用到數(shù)據(jù)庫(kù)連接的代碼。

2.2 數(shù)據(jù)庫(kù)連接對(duì)象的關(guān)閉

在應(yīng)用程序運(yùn)行在過(guò)程中,當(dāng)客戶端發(fā)起查詢或更新請(qǐng)求時(shí),應(yīng)用程序就會(huì)通過(guò)JDBC API新建一個(gè)連接,與數(shù)據(jù)庫(kù)進(jìn)行通信。如果,應(yīng)用程序有多個(gè)客戶端需要頻繁對(duì)數(shù)據(jù)進(jìn)行操作,那么,就需要建立相應(yīng)多個(gè)在數(shù)據(jù)庫(kù)連接。所以,編寫(xiě)應(yīng)用程序在時(shí)候在每一個(gè)客戶端使用數(shù)據(jù)庫(kù)完成之后,一定要釋放連接資源,包括Connection對(duì)象、Statement對(duì)象和ResultSet對(duì)象,否則會(huì)因資源耗盡而使應(yīng)用程序崩潰。因此,程序員在編寫(xiě)應(yīng)用程序時(shí),在處理數(shù)據(jù)庫(kù)操作方面必須謹(jǐn)慎,保證每次的數(shù)據(jù)操作之后及時(shí)釋放數(shù)據(jù)庫(kù)連接資源,提高應(yīng)用程序在穩(wěn)定性和健壯性。

一個(gè)數(shù)據(jù)庫(kù)通信連接一般可以支持多達(dá)幾百個(gè)的Statement對(duì)象。通常,在應(yīng)用程序中,每個(gè)程序在調(diào)用都需要構(gòu)造一個(gè)物理連接,而且每個(gè)Statement對(duì)象需要單獨(dú)占用一個(gè)物理連接。由于建立物理連接的在過(guò)程需要通過(guò)網(wǎng)絡(luò)反復(fù)溝通,比較浪費(fèi)時(shí)間,所以在連接數(shù)據(jù)庫(kù)時(shí),盡最大可能避免或者減少單個(gè)Statement對(duì)象獨(dú)占物理連接在情況。這樣的設(shè)置對(duì)于一般的網(wǎng)站來(lái)說(shuō)還可以,如果一些訪問(wèn)量比較大的網(wǎng)站,當(dāng)連接數(shù)超過(guò)這個(gè)值的時(shí)候數(shù)據(jù)庫(kù)服務(wù)器就會(huì)報(bào)錯(cuò),出現(xiàn)網(wǎng)站癱瘓等現(xiàn)象。所以對(duì)數(shù)據(jù)庫(kù)操作完成后,要調(diào)用相關(guān)對(duì)象的close()方法,將所創(chuàng)建的數(shù)據(jù)庫(kù)連接相關(guān)對(duì)象關(guān)閉,通常采取“先創(chuàng)建的對(duì)象后關(guān)閉”的原則。

在使用java編寫(xiě)應(yīng)用程序時(shí),通常將將數(shù)據(jù)庫(kù)的連接、關(guān)閉與異常處理同時(shí)寫(xiě)在一個(gè)單獨(dú)的類文件的相關(guān)代碼。在類的構(gòu)造方法中編寫(xiě)數(shù)據(jù)庫(kù)連接、數(shù)據(jù)庫(kù)關(guān)閉對(duì)象的方法,此外也可以將其它數(shù)據(jù)庫(kù)的操作方法寫(xiě)在此方法中,例如數(shù)據(jù)庫(kù)的查詢、修改、插入和刪除等。當(dāng)需要進(jìn)行數(shù)據(jù)庫(kù)操作時(shí),生成這個(gè)類的對(duì)象,就可以進(jìn)行數(shù)據(jù)庫(kù)的連接、關(guān)閉以及其它相關(guān)操作,提高代碼在利用率。

(1)public class DBConnection {

(2)private String dbDriver="org.gjt.mm.mysql.Driver";

(3)private String url="jdbc:mysql://localhost:3306/shop";

(4)public Connection connection = null;

(5)public DBConnection() {

(6)try {

(7)Class.forName(dbDriver).newInstance(); // 加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)

(8)connection = DriverManager.getConnection(url, "root", "123");

(9)} catch (Exception ex) {

(10)System.out.println("數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序加載失?。?+ex.toString());}

(11)}

(12)public void clo(){

(13)try{

(14)if(connection!=null)

(15)connection.close();

(16)}catch(Exception e){

(17)System.out.print(e.getMessage());}

(18)}

(19)}

2.3 數(shù)據(jù)庫(kù)連接池的使用

使用JDBC訪問(wèn)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)雖然簡(jiǎn)單易用,但是這種方法對(duì)于Web開(kāi)發(fā)來(lái)說(shuō),存在很多問(wèn)題。比如文中前面提到的每一次Web請(qǐng)求都要建立一次數(shù)據(jù)庫(kù)連接,即浪費(fèi)時(shí)間又占用內(nèi)存。而且對(duì)于大型的電子商務(wù)網(wǎng)站,同時(shí)幾百人乃至幾千人在訪問(wèn)量,在進(jìn)行數(shù)據(jù)庫(kù)連接操作時(shí),要耗費(fèi)大量在系統(tǒng)資源,影響網(wǎng)站的訪問(wèn)速度。在標(biāo)準(zhǔn)JDBC API接口中,并沒(méi)有提供資源的管理方法,資源管理必須由應(yīng)用程序自己負(fù)責(zé)管理。雖然在JDBC規(guī)范中,強(qiáng)調(diào)了資源的關(guān)閉、回收及合理運(yùn)用,但最穩(wěn)妥的方式,還是為應(yīng)用程序提供有效的管理手段。

對(duì)數(shù)據(jù)庫(kù)連接資源的管理是很重要的問(wèn)題。我們可以使用“數(shù)據(jù)庫(kù)連接緩沖池”來(lái)解決資源的頻繁分配與釋放所造成的問(wèn)題。將數(shù)據(jù)庫(kù)連接預(yù)先放在緩沖池中,當(dāng)需要建立數(shù)據(jù)庫(kù)連接時(shí),就從“緩沖池”中取出,使用后再放回去。我們可以通過(guò)設(shè)定連接池中的最大連接數(shù)來(lái)防止太多的連接數(shù)量。

3 結(jié)語(yǔ)

上面講述了Java連接MySQL數(shù)據(jù)庫(kù)的方法和一些操作技巧,實(shí)際在進(jìn)行數(shù)據(jù)庫(kù)操作時(shí)還有很多可以優(yōu)化的部分,除了優(yōu)化代碼部分以外,還可以優(yōu)化數(shù)據(jù)庫(kù),包括數(shù)據(jù)結(jié)構(gòu)的調(diào)整、SQL語(yǔ)句的調(diào)整和服務(wù)器內(nèi)存分配的調(diào)整等等。另外在Java Web開(kāi)發(fā)中也可以利用Hibernate框架來(lái)操作數(shù)據(jù)庫(kù),它是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了輕量級(jí)的對(duì)象封裝,使Java程序員可以隨心所欲地使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。已經(jīng)得到了廣大企業(yè)和Java Web開(kāi)發(fā)人員的認(rèn)可。

參考文獻(xiàn)

[1]黃丹.基于JDBC的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)[J].軟件導(dǎo)刊,2010(03).

[2]聶凱,曹慢慢.Mysql數(shù)據(jù)庫(kù)的訪問(wèn)方法淺析[J].科技資訊,2010(09).

[3]張作宸.JDBC原理及操縱數(shù)據(jù)庫(kù)方法[J].科技信息,2009(02).

篇9

關(guān)鍵詞:SqlServer;數(shù)據(jù)庫(kù);維護(hù)計(jì)劃;備份

中圖分類號(hào):TP309.3文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2009)33-9617-03

The Research and Application of Sqlserver Automatic Secondary Backup

WU Yan, ZHANG Dong

(Fujian Polytechnic of Information Technology, Fuzhou 350003, China)

Abstract: Database is the heart of foreground application, every record has the staff's wisdom and hard work., they are all valuable asset. Back-up the database is the really essential method of preventing damage to hardware and software, human operational errors and so on that destroys the database. This paper describes the concrete steps that after the script for data backup based on Sql Server2000 database maintenance plan.

Key words: SQL Server; database; maintenance plan; backup

Sql Server數(shù)據(jù)庫(kù)是目前廣泛使用的數(shù)據(jù)庫(kù)。備份和保護(hù)數(shù)據(jù)是數(shù)據(jù)庫(kù)維護(hù)的首要任務(wù),SqlServer本身具有比較強(qiáng)大的備份功能,但出現(xiàn)災(zāi)難的原因往往是由于硬盤(pán)的損壞,所以有必要在異地(異機(jī))多保留一份備份數(shù)據(jù),以備不測(cè)。這就要求我們除sqlserver自帶功能外,還要探索其他的方法實(shí)現(xiàn)SqlServer數(shù)據(jù)庫(kù)自動(dòng)的異地備份。

1 備份目標(biāo)

我們具體研究實(shí)現(xiàn)目標(biāo)包括:每天對(duì)數(shù)據(jù)庫(kù)進(jìn)行兩個(gè)不同時(shí)刻的完全備份、保留最近1周的備份數(shù)據(jù)、備份數(shù)據(jù)實(shí)現(xiàn)異地(異機(jī))存放。

每天對(duì)數(shù)據(jù)庫(kù)進(jìn)行兩個(gè)不同時(shí)刻的完全備份;保留最近1周的備份數(shù)據(jù);備份數(shù)據(jù)實(shí)現(xiàn)異地(異機(jī))存放;對(duì)于目標(biāo)的前兩條,我是利用SQL Server 2000本身自帶“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”來(lái)實(shí)現(xiàn)的;而最后一條我是通過(guò)手工編寫(xiě)腳本來(lái)實(shí)現(xiàn)的。

具體如下:“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”是SQL Server 2000能夠?qū)崿F(xiàn)自動(dòng)備份調(diào)度,以及自動(dòng)刪除舊的數(shù)據(jù)備份,完全能夠滿足我我們備份要求。

2 實(shí)現(xiàn)步驟

2.1打開(kāi)SQL Server“企業(yè)管理器”窗體

用鼠標(biāo)單擊任務(wù)欄上的“開(kāi)始”按鈕中的“程序(P)”菜單下的“Microsoft SQL Server”子菜單中的“企業(yè)管理器”菜單項(xiàng),即可打開(kāi)SQL Server 2000的“企業(yè)管理器”窗體。

2.2找到“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”功能

在“企業(yè)管理器”窗體中左側(cè)的樹(shù)型選項(xiàng)卡中,用鼠標(biāo)單擊“+”圖標(biāo)擴(kuò)展開(kāi)“控制臺(tái)根目錄”下的“Microsoft SQL Servers”,可以看到其下有一個(gè)“SQL Server組”;接著繼續(xù)擴(kuò)展開(kāi)“SQL Server組”,此時(shí)可以看到其下出現(xiàn)了服務(wù)器的名稱;再繼續(xù)擴(kuò)展開(kāi)此服務(wù)器,可以看到其下列出了諸如“數(shù)據(jù)庫(kù)”、“數(shù)據(jù)轉(zhuǎn)換服務(wù)”等項(xiàng)目;最后單擊“管理”項(xiàng)目,可以看到其下存在一個(gè)“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”(如圖1)。

2.3創(chuàng)建“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”

鼠標(biāo)右擊“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”項(xiàng)目,選擇“新建維護(hù)計(jì)劃(P)”功能,將打開(kāi)“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃向?qū)А贝绑w,依照此向?qū)軌騽?chuàng)建一個(gè)新的“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”。

步驟1:單擊 “下一步(N)”按鈕,打開(kāi)“選擇數(shù)據(jù)庫(kù)”窗體(如圖2)。在此窗體中選定文獻(xiàn)系統(tǒng)數(shù)據(jù)庫(kù)“tsgdb”。

步驟2:單擊圖2中的“下一步(N)”按鈕,打開(kāi)“更新數(shù)據(jù)優(yōu)化信息”窗體(如圖3)。

在此窗體中可以對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)和索引重新進(jìn)行組織,以及能夠設(shè)定在滿足一定條件的情況下,維護(hù)計(jì)劃自動(dòng)刪除數(shù)據(jù)庫(kù)中的未使用的空間,以便提高性能。

本人沒(méi)有使用其中的功能。

步驟3:單擊圖3中的“下一步(N)”按鈕,打開(kāi)“檢查數(shù)據(jù)庫(kù)完整性”窗體,如圖4所示。

在此窗體中可以設(shè)定維護(hù)計(jì)劃在備份數(shù)據(jù)庫(kù)前自動(dòng)檢查數(shù)據(jù)庫(kù)的完整性,以便檢測(cè)由于硬件或軟件錯(cuò)誤而導(dǎo)致數(shù)據(jù)的不一致。選中“檢查數(shù)據(jù)庫(kù)完整性[H]”復(fù)選框,因?yàn)橛锌赡軙?huì)修正一些錯(cuò)誤,使備份的數(shù)據(jù)更有效。

步驟4:在“檢查數(shù)據(jù)庫(kù)完整性”窗體中的“下一步(N)”按鈕,打開(kāi)“指定數(shù)據(jù)庫(kù)備份計(jì)劃”窗體。因?yàn)閳D書(shū)館開(kāi)館時(shí)間為8:00――12:00和14:00――21:00,所以我在“調(diào)度”中設(shè)為每天12:30開(kāi)始備份和21:30開(kāi)始備份,這樣做,即提高了數(shù)據(jù)庫(kù)備份的效率,又不會(huì)影響到文獻(xiàn)系統(tǒng)的正常使用。

對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份,則必須選定“作為維護(hù)計(jì)劃的一部分來(lái)備份數(shù)據(jù)庫(kù)[A]”復(fù)選框,指定存儲(chǔ)備份文件的位置:磁盤(pán)。設(shè)定“調(diào)度”后單擊“下一步(N)”按鈕則顯示“指定備份磁盤(pán)目錄”窗體(如圖6)。

在圖6中,指定存儲(chǔ)備份文件的目錄備份文件擴(kuò)展名,因?yàn)槲乙4孀罱?周的備份,所以設(shè)置備份計(jì)劃自動(dòng)地刪除早于1周的備份文件。設(shè)定后,單擊“下一步(N)”按鈕則顯示“指定事務(wù)日志備份計(jì)劃”窗體。

步驟5:指定“事務(wù)日志備份計(jì)劃”的過(guò)程與步驟4的過(guò)程完全相同,只是在設(shè)定“調(diào)度”上稍有差別(因?yàn)槲业囊笫菙?shù)據(jù)庫(kù)每天備份一次,事務(wù)日志每1小時(shí)備份一次)。

步驟6:對(duì)事務(wù)日志的備份計(jì)劃全部設(shè)定后,單擊“下一步(N)”按鈕則顯示“要生成的報(bào)表”窗體。在此窗體中可以指定用于存放整個(gè)備份計(jì)劃執(zhí)行過(guò)程中的日志的目錄。

步驟7:完成步驟6后,單擊“下一步(N)”按鈕則顯示“維護(hù)計(jì)劃歷史紀(jì)錄”窗體。

在此窗體中可以指定如何存儲(chǔ)此維護(hù)計(jì)劃的歷史紀(jì)錄(是存放在“本地服務(wù)器”上,還是在“遠(yuǎn)程服務(wù)器”上),而且通過(guò)指定表中的行數(shù)可以限定歷史紀(jì)錄的存儲(chǔ)大小。

步驟8:完成步驟7后,單擊“下一步(N)”按鈕則顯示“正在完成數(shù)據(jù)庫(kù)維護(hù)計(jì)劃向?qū)А贝绑w(如圖7)。

在此窗體中自定義一個(gè)“計(jì)劃名”為“tsgdb備份”。

步驟9:完成步驟8后,單擊“完成”按鈕,則顯示“維護(hù)計(jì)劃已創(chuàng)建成功?!钡奶崾究?再單擊 “確定”按鈕即成功地設(shè)定了文獻(xiàn)系統(tǒng)數(shù)據(jù)庫(kù)維護(hù)計(jì)劃。

2.4 啟動(dòng)SQL Server 2000以便執(zhí)行“作業(yè)”

完成第三步后,還需啟動(dòng)SQL Server 2000 Agent(),以便執(zhí)行“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”作業(yè)。

與展開(kāi)SQL Server 2000“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”的步驟一樣,在“管理”項(xiàng)目中,可以發(fā)現(xiàn)存在一個(gè)“SQL Server ”。

2.5 檢查結(jié)果

經(jīng)過(guò)上述步驟后,文獻(xiàn)系統(tǒng)數(shù)據(jù)庫(kù)的備份計(jì)劃就建立起來(lái)了。可以通過(guò)“資源管理器”來(lái)檢查備份目錄下是否存在相應(yīng)地備份文件。

通過(guò)以上操作,已經(jīng)實(shí)現(xiàn)了在服務(wù)器上保留最近一周的備份數(shù)據(jù)了,為了防止服務(wù)器本身硬件故障等情況對(duì)備份數(shù)據(jù)造成破壞,我又通過(guò)編寫(xiě)腳本實(shí)現(xiàn)了備份數(shù)據(jù)的異地(機(jī))存放。具體如下:

3 編寫(xiě)腳本

新建文件名為cptsgdb.txt的文本文件,在其中編輯以下內(nèi)容(如圖8):

net use \\172.16.0.8\DB_bk PASSWD_for_tsg /user:tsg

REM start copy

cd C:\WINDOWS\system32

xcopy.exe \\172.16.0.8\tsg\DB_back\*.* g:\ /e/h/y/d

說(shuō)明:

172.16.0.8是數(shù)據(jù)庫(kù)服務(wù)器,DB_bk為服務(wù)器上存放備份數(shù)據(jù)的目錄,一定要先將其共享。

? net use \\172.16.0.8\DB_bkPASSWD_for_tsg /user:tsg

以用戶tsg訪問(wèn)DB_bk目錄,PASSWD_for_tsg是用戶tsg的密碼。

? REM start copy 此為注釋行

? cd C:\WINDOWS\system32 切換當(dāng)前目錄到system32

? xcopy.exe \\172.16.0.8\tsg\DB_back\*.* g:\ /e/h/y/d

將服務(wù)器上的備份數(shù)據(jù)拷貝到本地g盤(pán)中。參數(shù)含義:

/e復(fù)制目錄和子目錄,包括空的。

/h也復(fù)制隱藏和系統(tǒng)文件。

/y禁止提示以確認(rèn)改寫(xiě)一個(gè)。

/d只復(fù)制那些源時(shí)間 比目標(biāo)時(shí)間新的文件。

編輯完成后保存文件,將文件后綴改為.bat,這樣就生成了一個(gè)批處理文件,我們使用windows自帶的“任務(wù)計(jì)劃”來(lái)調(diào)度它,實(shí)現(xiàn)數(shù)據(jù)在兩臺(tái)計(jì)算機(jī)之間的自動(dòng)定時(shí)copy。

4 結(jié)論

這樣對(duì)數(shù)據(jù)庫(kù)的異地備份的實(shí)現(xiàn),這樣我們就能有效防止軟硬件損壞、人為操作錯(cuò)誤等對(duì)數(shù)據(jù)庫(kù)造成破壞,來(lái)保障數(shù)據(jù)內(nèi)容。

參考文獻(xiàn):

[1] 薩師煊,王珊.數(shù)據(jù)庫(kù)系統(tǒng)概論[M].北京:高等教育出版社,2004:247-248.

[2] 張家愛(ài).基于日志的數(shù)據(jù)恢復(fù)及其在SQLSERVER中的實(shí)現(xiàn)[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2009(1).

[3] 趙松濤.SQL SERVER2000系統(tǒng)管理與應(yīng)用開(kāi)發(fā)[M].北京:人民郵電出版社,2006:18-20.

篇10

關(guān)鍵詞:組態(tài)王;SQL;各向異性;系統(tǒng)研發(fā) 

DOI:10.16640/j.cnki.37-1222/t.2016.02.089 

1 前言 

土工合成材料與土體界面的相互作用屬不同介質(zhì)之間的問(wèn)題,是當(dāng)今巖土工程的熱點(diǎn)問(wèn)題之一。筋-土界面上的摩擦阻力系數(shù)則是加筋土結(jié)構(gòu)設(shè)計(jì)和分析的重要參數(shù),性能參數(shù)的精準(zhǔn)測(cè)量對(duì)實(shí)際土體加筋工程具有重要指導(dǎo)意義[1-2]。我院自主研發(fā)一套充分考慮土工合成材料力學(xué)性能各項(xiàng)異性的新型直剪設(shè)備,避免了現(xiàn)行規(guī)范中試驗(yàn)測(cè)試值與土工合成材料實(shí)際受力特性嚴(yán)重不符的問(wèn)題,有效地解決了土工合成材料工程應(yīng)用中存在的安全隱患。同時(shí),搭建一套基于組態(tài)王與SQL數(shù)據(jù)庫(kù)的直剪試驗(yàn)操作系統(tǒng),實(shí)現(xiàn)了系統(tǒng)工作狀態(tài)實(shí)時(shí)監(jiān)控、特征數(shù)據(jù)實(shí)時(shí)顯示,數(shù)據(jù)及參數(shù)曲線輸出、存儲(chǔ)、查詢等功能,并對(duì)試驗(yàn)數(shù)據(jù)進(jìn)行處理,獲得了國(guó)家規(guī)范要求的土工合成材料剪切性能參數(shù)系列評(píng)價(jià)指標(biāo),計(jì)算結(jié)果準(zhǔn)確可靠。 

2 土工合成材料各向異性直剪儀介紹 

直剪設(shè)備主要包括機(jī)械、氣動(dòng)以及電氣控制三大系統(tǒng),如圖1所示。機(jī)械部分主要包括機(jī)架、頂尖、回轉(zhuǎn)驅(qū)動(dòng)、氣缸支撐架、上下剪切盒、直線導(dǎo)軌副等;氣動(dòng)部分主要由氣缸、空壓機(jī)、閥體等組成;電氣控制系統(tǒng)主要由伺服電動(dòng)缸、可編程控制器、傳感器、觸摸屏等組成。 

本設(shè)備采用整體式機(jī)架,結(jié)構(gòu)緊湊,系統(tǒng)剛度大、強(qiáng)度高,極好地降低了導(dǎo)軌變形率,為直剪性能參數(shù)的精準(zhǔn)測(cè)量建立結(jié)構(gòu)基礎(chǔ)。上剪切盒外部形狀采用正八邊形以便于頂尖定位、加強(qiáng)系統(tǒng)可靠性及可加工性,同時(shí)相較于四邊形、六邊形等形狀有效減小下剪切盒內(nèi)徑,進(jìn)而減小回轉(zhuǎn)驅(qū)動(dòng)尺寸,降低整機(jī)尺寸及重量。高性能回轉(zhuǎn)驅(qū)動(dòng)實(shí)現(xiàn)下剪切盒0~360°任意角度精確旋轉(zhuǎn),實(shí)現(xiàn)土工格柵各向異性性能參數(shù)直接測(cè)量,完美解決了現(xiàn)行規(guī)范試驗(yàn)測(cè)試值與土工合成材料實(shí)際受力特性嚴(yán)重不符的問(wèn)題,同時(shí)回轉(zhuǎn)驅(qū)動(dòng)具備自鎖功能以保證直剪試驗(yàn)中剪切面不發(fā)生旋轉(zhuǎn),保證直剪試驗(yàn)準(zhǔn)確。 

采用氣動(dòng)加壓結(jié)合數(shù)據(jù)實(shí)時(shí)采集模塊,對(duì)壓力進(jìn)行實(shí)時(shí)調(diào)節(jié),保壓時(shí)間高達(dá)2h且氣壓變化率≤0.1%,實(shí)驗(yàn)過(guò)程壓力穩(wěn)定確保試驗(yàn)采集數(shù)據(jù)準(zhǔn)確可靠。采用高精度伺服電動(dòng)機(jī)與壓力傳感器聯(lián)合控制的方法,使剪切速度、剪切位移、剪切力得到精確控制,設(shè)備性能參數(shù)如表1所示。 

3 直剪試驗(yàn)操作系統(tǒng) 

(1)系統(tǒng)功能介紹。直剪試驗(yàn)操作系統(tǒng)用來(lái)指導(dǎo)操作人員安全高效、智能規(guī)范的開(kāi)展土工合成材料剪切性能檢測(cè),實(shí)現(xiàn)系統(tǒng)工作狀態(tài)實(shí)時(shí)監(jiān)控、特征數(shù)據(jù)實(shí)時(shí)顯示及剪切性能數(shù)據(jù)及曲線輸出、查詢等功能。本系統(tǒng)共分為系統(tǒng)菜單、操作功能按鈕、法向應(yīng)力與實(shí)驗(yàn)時(shí)間顯示、狀態(tài)指示燈以及用戶登錄/退出等5個(gè)功能區(qū),如圖2區(qū)域1~5所示。 

系統(tǒng)菜單分為系統(tǒng)說(shuō)明、參數(shù)設(shè)置、實(shí)時(shí)數(shù)據(jù)、數(shù)據(jù)輸出、系統(tǒng)調(diào)試以及報(bào)警信息5個(gè)功能模塊。法向壓力及實(shí)驗(yàn)時(shí)間反應(yīng)實(shí)驗(yàn)過(guò)程實(shí)時(shí)法向應(yīng)力以及實(shí)驗(yàn)剩余時(shí)間。狀態(tài)指示燈區(qū)域包括5個(gè)狀態(tài)指示燈,系統(tǒng)狀態(tài)正常色為綠色,異常時(shí)為紅色;運(yùn)行狀態(tài)運(yùn)行過(guò)程為綠色,試驗(yàn)停止為灰色;報(bào)警狀態(tài)未出現(xiàn)報(bào)警為綠色,出現(xiàn)伺服異常、行程超出范圍、電機(jī)超載、壓力氣路連接異常等狀況時(shí)為紅色;法向應(yīng)力正常為綠色,應(yīng)力波動(dòng)范圍超出理論法向應(yīng)力的2%時(shí)指示燈為紅色。限位狀態(tài)反應(yīng)剪切位移是否超出行程范圍,正常為綠色,超限則為紅色。 

(2)系統(tǒng)操作流程及SQL實(shí)現(xiàn)。打開(kāi)/退出組態(tài)王,進(jìn)行SQL連接/連接,功能實(shí)現(xiàn)命令語(yǔ)言為:SQLConnect(IDDevice,"dsn=;uid=;pwd="),SQLDisconnect(\\本站點(diǎn)\IDDevice) 

上述命令語(yǔ)言實(shí)現(xiàn)了組態(tài)王與SQL數(shù)據(jù)源的連接/斷開(kāi),將此命令寫(xiě)入組態(tài)王應(yīng)用程序命令語(yǔ)言的啟動(dòng)/結(jié)束中,以實(shí)現(xiàn)系統(tǒng)開(kāi)始運(yùn)行時(shí)就可以連接/斷開(kāi)到數(shù)據(jù)庫(kù)[3]。 

進(jìn)入【系統(tǒng)調(diào)試】界面,調(diào)試各功能按鈕與數(shù)據(jù)顯示框,檢查系統(tǒng)是否正常;進(jìn)入【參數(shù)設(shè)置】界面,輸入實(shí)驗(yàn)參數(shù)和運(yùn)動(dòng)參數(shù);點(diǎn)擊【加壓】按鈕,并根據(jù)界面中間法向應(yīng)力顯示框進(jìn)行調(diào)整直至試驗(yàn)理論值;點(diǎn)擊【預(yù)壓】,彈出預(yù)壓界面,并進(jìn)行系統(tǒng)預(yù)壓5 min以保證后續(xù)實(shí)驗(yàn)過(guò)程壓力穩(wěn)定。 

預(yù)壓結(jié)束,點(diǎn)擊【電機(jī)使能】按鈕,若參數(shù)輸入不合理則彈出提示窗口,輸入合理則電機(jī)上電,功能實(shí)現(xiàn)命令語(yǔ)言如下:SQLCreateTable( \\本站點(diǎn)\IDDevice,\\本站點(diǎn)\實(shí)驗(yàn)時(shí)間與日期, "直剪儀實(shí)時(shí)數(shù)據(jù)") 

上述命令語(yǔ)言實(shí)現(xiàn)了按照設(shè)定表格模板的格式在數(shù)據(jù)庫(kù)中以實(shí)驗(yàn)日期與時(shí)間新建數(shù)據(jù)表格,將此命令寫(xiě)入【電機(jī)使能】按鈕的按下時(shí),以實(shí)現(xiàn)數(shù)據(jù)庫(kù)表格的創(chuàng)建。 

點(diǎn)擊【開(kāi)始】,進(jìn)入【實(shí)時(shí)數(shù)據(jù)】界面開(kāi)始實(shí)驗(yàn),每10s將數(shù)據(jù)存一次,命令語(yǔ)言如下:

SQLInsert(\\本站點(diǎn)\IDDevice,\\本站點(diǎn)\實(shí)驗(yàn)時(shí)間與日期, "直剪儀實(shí)時(shí)數(shù)據(jù)") 

組態(tài)王將記錄體相關(guān)聯(lián)的變量當(dāng)前值插入到SQL數(shù)據(jù)庫(kù)表格中,從而生成一條新的記錄,達(dá)到將組態(tài)王中的數(shù)據(jù)寫(xiě)到外部數(shù)據(jù)庫(kù)的目的。 

實(shí)驗(yàn)時(shí)間為0或者點(diǎn)擊【停止】按鈕,進(jìn)入數(shù)據(jù)是否保存對(duì)話框,若刪除當(dāng)前試驗(yàn)數(shù)據(jù)則命令語(yǔ)言如下: 

SQLSelect( \\本站點(diǎn)\IDDevice, "實(shí)驗(yàn)時(shí)間匯總", "報(bào)表名", "", "" ); 

SQLDelete(\\本站點(diǎn)\IDDevice, "實(shí)驗(yàn)時(shí)間匯總",whereexpr); 

點(diǎn)擊【卸壓】按鈕;點(diǎn)擊【歸零】按鈕,并彈出系統(tǒng)回零等待界面,當(dāng)回零動(dòng)作完成后,該窗口自動(dòng)關(guān)閉;點(diǎn)擊【電機(jī)去使能】按鈕,關(guān)閉電機(jī);若繼續(xù)進(jìn)行實(shí)驗(yàn),點(diǎn)擊【加壓】按鈕并按照步驟3-11開(kāi)展實(shí)驗(yàn),若結(jié)束實(shí)驗(yàn)則點(diǎn)擊【結(jié)束】按鈕。 

進(jìn)入數(shù)據(jù)輸出開(kāi)展后期數(shù)據(jù)處理。數(shù)據(jù)輸出分為【數(shù)據(jù)報(bào)表】和【曲線輸出】?jī)蓚€(gè)功能,先從“實(shí)驗(yàn)時(shí)間選擇”下拉列表框中選擇相應(yīng)試驗(yàn)數(shù)據(jù)日期,之后根據(jù)需要選擇報(bào)表/曲線預(yù)覽、打印、刪除等功能。 下拉列表框日期顯示SQL實(shí)現(xiàn)語(yǔ)言如下: 

SQLSelect( \\本站點(diǎn)\IDDevice, "實(shí)驗(yàn)時(shí)間匯總", "記錄報(bào)表名", "", "" ); 

SQLNext( \\本站點(diǎn)\IDDevice); 

當(dāng)需要將數(shù)據(jù)庫(kù)中的數(shù)據(jù)調(diào)入組態(tài)王來(lái)顯示,將此命令寫(xiě)入相應(yīng)功能按鈕按下時(shí),并添加查詢下一條記錄的命令,實(shí)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)的逐條查詢。 

4 試驗(yàn)實(shí)例數(shù)據(jù)處理 

本文從“實(shí)驗(yàn)時(shí)間選擇”下拉列表框中選擇“2015年5月26日11時(shí)23分”數(shù)據(jù)為處理實(shí)例,依次實(shí)現(xiàn)數(shù)據(jù)的報(bào)表預(yù)覽、曲線顯示,數(shù)據(jù)處理結(jié)果如圖3所示,并處理計(jì)算剪切位移與剪切力關(guān)系,如圖4所示。 

圖3(b)所示曲線可依據(jù)需要選擇坐標(biāo)軸,僅選擇一項(xiàng)則默認(rèn)時(shí)間為橫軸,若選擇兩項(xiàng)則第一選擇項(xiàng)為橫軸,第二選擇項(xiàng)為縱軸。點(diǎn)擊【選取】按鈕后,曲線顯示控件的橫/縱軸量程將依據(jù)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行合理調(diào)整。圖4所示曲線給出了剪切位移與剪切力關(guān)系圖,并能根據(jù)需要通過(guò)“實(shí)驗(yàn)時(shí)間選擇”添加多條曲線實(shí)現(xiàn)數(shù)據(jù)對(duì)比,實(shí)現(xiàn)曲線保存、打印和清空操作。 

5 結(jié)論 

本文研制的新型直剪設(shè)備結(jié)構(gòu)簡(jiǎn)單、對(duì)環(huán)境友好,安全性能高,基于組態(tài)王與SQL數(shù)據(jù)庫(kù)研發(fā)的試驗(yàn)操作系統(tǒng),可實(shí)現(xiàn)工作狀態(tài)實(shí)時(shí)監(jiān)控、特征數(shù)據(jù)實(shí)時(shí)顯示,性能參數(shù)后期處理等功能,操作簡(jiǎn)單、計(jì)算準(zhǔn)確可靠,具有很好的應(yīng)用價(jià)值。 

參考文獻(xiàn): 

[1]周楊,李曉瑩.土工合成材料直剪與拉拔聯(lián)合試驗(yàn)儀的研制[J].路基工程,2006,12(06):82-83.   本文由wWw.DyLw.NeT提供,第一論 文 網(wǎng)專業(yè)教育教學(xué)論文和以及服務(wù),歡迎光臨dYlw.nET

[2]鄧子健,沈躍.瀝青路面層間抗剪強(qiáng)度試驗(yàn)分析[J].山西交通科技, 2006,181(04):11-14.