sql語言范文
時間:2023-03-21 09:24:19
導(dǎo)語:如何才能寫好一篇sql語言,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。
篇1
[中圖分類號]F224.29 [文獻標(biāo)識碼]A [文章編號]1009-5349(2014)09-0057-02
SQL(結(jié)構(gòu)化查詢語言)是一種數(shù)據(jù)庫專用語言,無論是Oracle、MS SQL、Access還是其他大型公司的數(shù)據(jù)庫,亦或是建立在大型主機或個人pc機上,都可以通過應(yīng)用SQL語言來訪問或是更新數(shù)據(jù)庫的內(nèi)容。由于SQL語言通用型強,在各個公司都具有通用性,所以易于學(xué)習(xí)和使用,也逐漸被各種數(shù)據(jù)庫廠商應(yīng)用,成為一種共通的標(biāo)準(zhǔn)查詢語言。
目前各個高校幾乎都購買了各種教務(wù)管理系統(tǒng),他們是C/S或B/S模式的,教務(wù)管理系統(tǒng)會關(guān)系到學(xué)生的學(xué)籍、成績、選課很多方面的內(nèi)容,而且每個學(xué)校付給開發(fā)商的金額也不同,且開發(fā)商為了簡化模式不會針對某個學(xué)校的情況去單獨開發(fā)對單個學(xué)校的管理系統(tǒng)或管理軟件,筆者學(xué)校購買的教務(wù)管理系統(tǒng)就不能實現(xiàn)學(xué)分遺留統(tǒng)計、遺留科目統(tǒng)計,更別提畢業(yè)資格審核的完成,只能通過SQL語言去實現(xiàn)這些功能,以下先簡單地介紹一下SQL語句的基本功能。
一、SQL的基本語句
經(jīng)常使用的SQL語句主要有以下幾種:Select語句、Insert語句、Update語句和Delete語句。
(一)Select語句
1.語法格式
Select[Distinct][Top(數(shù)值)]字段列表From表名[Where條件]
Order By 排序字段名ASC|DESC][Group By 分組字段名][Having 篩選條件表達式]
2.Select語句的應(yīng)用實例
①選取數(shù)據(jù)表中的全部數(shù)據(jù):Select * From學(xué)生信息,這就是相當(dāng)于將學(xué)生信息表中的數(shù)據(jù)全部提出來。
②選取數(shù)據(jù)表中指定字段的數(shù)據(jù):Select學(xué)號From學(xué)生信息,這就相當(dāng)于將學(xué)生信息從指定的表中提取出來。
③選取前若干條記錄,且要求查詢結(jié)果按降序排列:Select Top 10學(xué)號From成績表,Order By成績DESC,其中Top 10代表前十個數(shù)據(jù)的意思;Order by代表排序的意思,DESC代表降序的意思,所以整句化表現(xiàn)的就是取成績在前十名的學(xué)號。
④根據(jù)特定條件選取數(shù)據(jù)表中的部分?jǐn)?shù)據(jù):Select * From學(xué)生信息,Where班級= '測控031',此處的where代表一個條件的篩選也就是代表班級為測控031的學(xué)生信息將全部提出來。
⑤按關(guān)鍵字查找記錄:例如查詢所有姓“李”的學(xué)生,“%”代表任意字符。Select * From學(xué)生信息,Where姓名Like‘李%'。
⑥查詢符合某種條件的記錄總數(shù):Select Count(*)From學(xué)生信息,Where性別=‘男',此處count()為計數(shù)函數(shù),本句的意思就是數(shù)男生的數(shù)目。
⑦計算學(xué)生的平均成績:Select Avg(成績)from成績表,此處AVG函數(shù)便是求平均值的一個函數(shù)。
⑧組合查詢:例如在“學(xué)生信息”表中只有“班級編號”字段,“班級名稱”字段在“班級”表中,如果查詢結(jié)果需要“學(xué)號、姓名、性別、班級名稱”等字段,則需要從多個表中組合查詢。SELECT dbo.學(xué)生信息.學(xué)號,dbo.學(xué)生信息.姓名,dbo.班級.班級名稱,INNER JOIN dbo.班級 ON dbo.學(xué)生信息.班級編號=dbo.班級.班級編號。
(二)Insert語句
1.語法格式
Insert Into數(shù)據(jù)表名稱(字段1,字段2, …),Values(字段值1, 字段值2, …)
2.Insert語句的應(yīng)用實例
Insert Into學(xué)生信息(學(xué)號,姓名,性別,班級),Values(‘200703020128',‘唐麗',‘女',‘測控031'),本句的意思就是將新的數(shù)據(jù)信息添加到數(shù)據(jù)庫中的。
(三)Update語句
1.語法格式
Update數(shù)據(jù)表名,Set字段1=字段值1,字段2=字段值2,[Where 條件]
2.Update語句的應(yīng)用實例
Update學(xué)生信息,Set學(xué)號=‘200703020128',姓名=‘張文',性別=‘男',班級編號=‘2004030201',Where學(xué)號=‘200703020128',本句就是將數(shù)據(jù)庫中學(xué)號為‘200703020128'的數(shù)據(jù)進行更新。
(四)Delete語句
1.語法格式
Delete From數(shù)據(jù)表名稱[Where條件]。
2.Delete語句的應(yīng)用實例
Delete From學(xué)生信息,Where學(xué)號=‘200703020128’,該句的意義就是刪掉了學(xué)號為‘200703020128’的學(xué)生信息。
二、SQL語句的應(yīng)用
本文以提取在校生掛科成績的數(shù)據(jù)庫程序為例來說明SQL語言的應(yīng)用。
select BDInstitute.InstituteName as‘學(xué)院',
SMBasicInfo.StudentNo as‘學(xué)號',
SMBasicInfo.StudentName as‘姓名',
GRGrade.LessonInfoName as‘課程名稱',
max(GRGrade.EffectiveGrade) as‘成績',
以上這段程序?qū)?shù)據(jù)庫表中的字段定義為新的字段以便可以更為直觀的顯示給大家。
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語句的各種限制條件比如說學(xué)籍狀態(tài)為在籍在校、年級的篩選,等等。
group by
BDClassInfo.EntranceYear,
BDProfessionInfo.ProfessionInfoname,
SMBasicInfo.StudentNo,
SMBasicInfo.StudentName,
GRGrade.LessonInfoName
以上這段程序便是“Group By”的應(yīng)用,從字面意義上理解就是根據(jù)“By”指定的規(guī)則對數(shù)據(jù)進行分組,所謂的分組就是將一個“數(shù)據(jù)集”根據(jù)分組進行處理。
having max(GRGrade.EffectiveGrade)
order by
BDClassInfo.EntranceYear,
BDClassInfo.ClassInfoName,
GRGrade.ExamTermNo,
GRGrade.CourseKind,GRGrade.CreditHour desc
以上便是對全校學(xué)生不及格成績進行提取的一個應(yīng)用實例以便使大家更為清晰的理解。
三、結(jié)論
篇2
一、開發(fā)工具介紹
SQL是英文Structured Query Language的縮寫,意思為結(jié)構(gòu)化查詢語言。SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進行溝通。SQL Server是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng),它最初是由Microsoft Sybase和Ashton-Tate三家公司共同開發(fā)的,于1988年推出了第一個OS/2 版本,在Windows NT推出后,Microsoft與Sybase在SQL Server的開發(fā)上就分道揚鑣了,Microsoft將SQL Server移植到Windows NT系統(tǒng)上專注于開發(fā)推廣SQL Server的Windows NT版本;Sybase則較專注于SQL Server在UNIX操作系統(tǒng)上的應(yīng)用。SQL Server 2000是Microsoft公司推出的SQL Server數(shù)據(jù)庫管理系統(tǒng)的最新版本,該版本繼承了SQL Server 7.0 版本優(yōu)點的同時又比它增加了許多更先進的功能,具有使用方便、可伸縮性好、與相關(guān)軟件集成程度高等優(yōu)點,可跨越從運行Microsoft Windows 98的膝上型電腦到運行Microsoft Windows 2000的大型多處理器的服務(wù)器等多種平臺使用。
Delphi這個名字源于古希臘的城市名,它集中了第三代語言的優(yōu)點,以O(shè)bject Pascal為基礎(chǔ),擴充了面向?qū)ο蟮哪芰?,并且完美地結(jié)合了可視化的開發(fā)手段。Delphi自1995年3月一推出就受到了人們的關(guān)注,并在當(dāng)年一舉奪得了多項大獎。Delphi使用了本地編譯器直接生成技術(shù),使程序的執(zhí)行性能遠遠高于其他產(chǎn)品生成的程序,它還是真正的面向?qū)ο蟮木幊陶Z言。Pascal語言的嚴(yán)謹(jǐn)加上可視化的優(yōu)勢和強大的數(shù)據(jù)庫功能,使得它有充分的資本和微軟的VB相媲美。Delphi實際上是Pascal語言的一種版本,但它與傳統(tǒng)的Pascal語言又有天壤之別。一個Delphi程序首先是應(yīng)用程序框架,而這一框架正是應(yīng)用程序的“骨架”。在骨架上即使沒有附著任何東西,仍可以嚴(yán)格地按照設(shè)計運行。您的工作只是在“骨架”中加入您的程序,缺省的應(yīng)用程序是一個空白的窗體,您可以運行它,結(jié)果得到一個空白的窗口。這個窗口具有Windows窗口的全部性質(zhì):可以被放大縮小、移動、最大最小化等,但您卻沒有編寫一行程序。因此,可以說應(yīng)用程序框架通過提供所有應(yīng)用程序共有的東西,為用戶應(yīng)用程序的開發(fā)打下了良好的基礎(chǔ)。Delphi是全新的可視化編程環(huán)境,為我們提供了一種方便、快捷的Windows應(yīng)用程序開發(fā)工具。它使用了Microsoft Windows圖形用戶界面的許多先進特性和設(shè)計思想,采用了彈性可重復(fù)利用的完整的面向?qū)ο蟪绦蛘Z言、當(dāng)今世界上最快的編輯器、最為領(lǐng)先的數(shù)據(jù)庫技術(shù)。對于廣大的程序開發(fā)人員來講,使用Delphi開發(fā)應(yīng)用軟件,無疑會大大地提高編程效率。
二、方案設(shè)計
本文借鑒面向?qū)ο蟪绦蛟O(shè)計的繼承思想,提出使用SQL Server數(shù)據(jù)庫載入技術(shù)實現(xiàn)多種語言的切換。(圖1)
此方案把大量多語言數(shù)據(jù)錄入到數(shù)據(jù)庫中,可縮短可執(zhí)行文件長度,提高系統(tǒng)啟動速度,而且在系統(tǒng)崩潰后,可以使用數(shù)據(jù)庫恢復(fù)功能,得到原始數(shù)據(jù),從而實現(xiàn)應(yīng)用軟件界面多種語言的正常切換。
三、關(guān)鍵技術(shù)
(一)數(shù)據(jù)庫載入技術(shù)。在此方案中,第一,在數(shù)據(jù)庫中創(chuàng)建一個語言種類編碼表,對當(dāng)前系統(tǒng)支持的語種進行編碼。第二,創(chuàng)建一個應(yīng)用軟件界面列表,記錄當(dāng)前系統(tǒng)的界面?zhèn)€數(shù),并為每個界面設(shè)置一個編碼。第三,創(chuàng)建一個界面與語種的映射表,記錄每個界面對應(yīng)的語種。在系統(tǒng)登陸時首先選擇語言,登陸成功后,無論進入哪個窗體界面,都在窗體的Onshow事件里根據(jù)系統(tǒng)當(dāng)前語種編碼查找每個控件的Caption,更改默認(rèn)為新選擇語種的Caption值。此方案需要在應(yīng)用程序中創(chuàng)建一個父類窗體,在父類窗體的Onshow事件里寫入多語種界面支持程序,其他窗體可以通過繼承該父類窗體實現(xiàn)多語種自動載入。當(dāng)應(yīng)用程序需要加入新的支持語種時,還需要設(shè)計一個專用的界面以提供對可視化界面窗體的語種配置。
(二)數(shù)據(jù)庫表結(jié)構(gòu)。在上述數(shù)據(jù)庫中,用到語種編碼表、窗體信息表、窗體控件語種配置表、Table字段配置表、Table字段列表、提示信息配置表等,以下是窗體信息表、窗體控件語種配置表的數(shù)據(jù)結(jié)構(gòu)。(表1、2)
(三)多語種配置數(shù)據(jù)錄入??梢暬缑嬷С侄嗾Z種的一個重要方面是多語種數(shù)據(jù)的錄入。假如全部采用手工錄入,工作量將是非常巨大的。圖2所示的專用多語種配置窗體frm_config,把每個子類窗體多語種界面數(shù)據(jù)錄入數(shù)據(jù)庫,大大減少了錄入工作量。
具體操作步驟:
第一,通過手工記錄每個窗體的信息至表1中;第二,在frm_config中用listbox列出表1中記錄的所有窗體,每選中一個窗體,便自動讀出該窗體所有子控件,這里可以使用窗體自帶方法self.Controls[index]來獲取,Controls[index]數(shù)組包含了該窗體全部子控件。(圖2)
但是,并非所有控件都有Caption,所以需要對每個TCon-trol使用(TControl is Tbutton)或(TControl is Tlabel)等進行判斷和篩選,具體篩選什么控件,可以根據(jù)可視化應(yīng)用軟件在界面上使用帶有Caption屬性的控件而定。當(dāng)把帶有Caption的控件篩選出來后,可以用String-Grid組件列出,第一列是原TControl的Caption(默認(rèn)簡體中文),需要創(chuàng)建新的語種時,根據(jù)默認(rèn)簡體中文Cap-tion的內(nèi)容,將映射值錄入到對應(yīng)的第二列,錄入完畢保存到數(shù)據(jù)庫中。通常需要多語種化的控件如:Tlabel,Tbutton,TDBGrid,TPanel,
Tcheckbox,TRadiobutton,TPopupmenu,Tmainmenu等,這些由可視化應(yīng)用軟件界面的控件使用情況來確定。
(四)Onshow事件的實現(xiàn)原理。在父類窗體的Onshow事件中寫入的多語種界面支持程序可以在其子類窗體重用,其子類窗體通過繼承該父類窗體便可以自動實現(xiàn)多語種自動載入。OnShow事件實現(xiàn)原理是:根據(jù)當(dāng)前界面語種編碼和當(dāng)前窗體名稱讀出當(dāng)前窗體內(nèi)控件的多語種配置記錄,根據(jù)每條記錄中控件的類型和名稱,更新控件的Caption為當(dāng)前語種下的值。
(五)DBGrid控件的多語種化。在可視化應(yīng)用軟件界面中,DBGrid控件的多語種化是比較煩瑣的,具體實現(xiàn)過程如下:
step1:使用Table字段配置表和Table字段列表記錄需要多語種化的數(shù)據(jù);
step2:定義全局過程;
step3:過程調(diào)用。通過在任何含有DBGrid窗體On-show事件內(nèi)調(diào)用這一過程,便可實現(xiàn)DBGrid表格中的多語種化。
上述過程定義如下:
procedure GP_UpDateTitleCaptionOfDBGrid(DataSet:TDataSet;DBGrid:TwwDBGrid;
TableName:String;xLgCodeID:integer);
//DataSet:相關(guān)數(shù)據(jù)集名
//DBGrid:要更新的數(shù)據(jù)表格控件
//TableName:相關(guān)數(shù)據(jù)庫表
//xLgCodeID:要更新的語種
(六)提示信息的多語種化。在可視化應(yīng)用軟件中有時需要給用戶提示信息。對此,提示信息全部由“提示信息配置表”給出,定義一個全局動態(tài)數(shù)組,在程序啟動時,從數(shù)據(jù)庫中載入xMsg[x]=′MSG′的即是提示信息,調(diào)用提示信息時,只需要知道當(dāng)前使用的是什么語種和信息序號。對此筆者設(shè)計了一個初始化全局變量的函數(shù):procedureFS_LoadGlobalVar(xLgCode
ID:integer);該函數(shù)執(zhí)行后將會初始全局消息隊列(GS_MSG:ar-ray of String)和其他需要從數(shù)據(jù)庫載入的變量初始值。當(dāng)顯示某個提示信息時,只需要給出他的序號。
例如:ShowMessage(GS_MSG[12]);
//第12號提示信息,各個語種的第12號信息含義一致
篇3
關(guān)鍵詞:SQL注入 研究 預(yù)防對策
隨著互聯(lián)網(wǎng)的發(fā)展,大量的web網(wǎng)站開始涌現(xiàn),極大地方便了人們的信息獲取需求。與此同時,黑客針對網(wǎng)站的攻擊也屢屢出現(xiàn),造成了或多或少的經(jīng)濟損失現(xiàn)代社會,而近年來互聯(lián)網(wǎng)技術(shù)的發(fā)展迅猛,以因特網(wǎng)為基礎(chǔ)平臺的Web應(yīng)用系統(tǒng)在計算機的各個領(lǐng)域都有了越來越廣泛的用途。譬如企業(yè)的辦公系統(tǒng)以及電子商務(wù)系統(tǒng)等等。這些系統(tǒng)絕大多數(shù)都是采用的HTTP的方式進行數(shù)據(jù)的傳遞,然后將這些數(shù)據(jù)相關(guān)組織的數(shù)據(jù)庫當(dāng)中,這些數(shù)據(jù)對一些不法分子來說具有非常大的吸引力,這就給數(shù)據(jù)的安全性造成了很大的安全隱患,比較典型的就是SQL的注入。
一、SQL注入
從目前的情況來看,現(xiàn)在的Web應(yīng)用程序在一般情況下采用的都是依靠數(shù)據(jù)庫為用戶進行寫、度數(shù)據(jù)的方法,但是,在另一方面,由于從事程序編程人員的水平參差不齊,絕大多數(shù)編程的工作者沒有在編寫程序的時候?qū)τ脩魯?shù)據(jù)的合法性進行辨別,這就導(dǎo)致在應(yīng)用程序的過程中出現(xiàn)了安全隱患。SQL注入,簡單的來說,就是不法分子利用高科技手段改變原來數(shù)據(jù)的查詢語句,并把這個命令提交給服務(wù)器,并在這個基礎(chǔ)之上執(zhí)行惡意的SQL命令然后不法分子在依據(jù)數(shù)據(jù)返回的結(jié)果中獲取攻擊者想要得到的信息,進行下一步的不法活動。
(一)關(guān)于SQL的注入原理
眾所周知,SQL注入的目的就是對數(shù)據(jù)庫進行攻擊,然后在攻擊數(shù)據(jù)庫的基礎(chǔ)之上在攻擊其所在的服務(wù)器,而這種攻擊的主要方式就是不法分子將代碼在參數(shù)中進行植入,而這些參數(shù)會被植入SQL命令中加已執(zhí)行。例如將惡意的代碼插入到字符串當(dāng)中,然后在這個基礎(chǔ)之上將這些字符串保存在數(shù)據(jù)庫當(dāng)中的數(shù)據(jù)表中,或者將其當(dāng)作元數(shù)據(jù),當(dāng)被存儲的字符串植入到動態(tài)的SQL命令當(dāng)中來的時候,這些惡意的代碼就會被執(zhí)行。雖然數(shù)據(jù)庫的類型是多種多樣的,但是SQL注入攻擊的原理和基本過程確是基本上都一樣的。結(jié)合其他學(xué)者的相關(guān)研究,本文將SQL注入的類別分為用戶登錄類別以及其他類兩種類型。在用戶登錄的類別當(dāng)中,不法分子可以繞過存在安全隱患的登錄框進行登錄,而在其他類別中,其則需要對攻擊的對象進行更深一步的分析,并對數(shù)據(jù)庫的類型有一定的了解,只有通過這樣的途徑,其才能實現(xiàn)SQL的注入,也只有在這個基礎(chǔ)之上才能毒數(shù)據(jù)庫進行攻擊。
我們都知道,SQL的注入對數(shù)據(jù)庫的危害是非常大的,攻擊者不僅可以利用已經(jīng)存在的SQL漏洞對服務(wù)器進行攻擊,對數(shù)據(jù)庫的敏感信息進行盜竊、竊取,甚至還有的不法分子會對服務(wù)器的信息進行肆意的篡改和刪除,技術(shù)水平高的不法分子還有可能種植后門程序,這種行為導(dǎo)致的最嚴(yán)重的后果就是當(dāng)不法分子一旦獲取該服務(wù)器的最高管理權(quán)限,其就可能實現(xiàn)整個操作系統(tǒng)的控制,有的甚至導(dǎo)致系統(tǒng)無法進行日常的運行甚至?xí)?dǎo)致整個系統(tǒng)的癱瘓。
二、關(guān)于SQL注入攻擊的防范措施
(一)參數(shù)化語句
由于數(shù)據(jù)庫所執(zhí)行的多數(shù)都是由SQL查詢創(chuàng)建成的字符串,因此該構(gòu)造方式極易導(dǎo)致應(yīng)用系統(tǒng)受到SQL注入攻擊。一般情況下,在編程語言和數(shù)據(jù)庫訪問API時,可采用占位符或綁定變量的方法為SQL查詢提供必要參數(shù),以此替代對用戶輸入進行操作。這種稱為參數(shù)化查詢的方法更加安全可靠,它能夠盡可能地避免應(yīng)用中常見的SQL注入漏洞,并可在多數(shù)情況下代替現(xiàn)有的動態(tài)查詢,對一般數(shù)據(jù)庫來說其效率更高。參數(shù)化查詢語句能夠為數(shù)據(jù)庫提供預(yù)處理語句功能,從而優(yōu)化查詢并進一步提高后續(xù)查詢性能
(二)輸入驗證
輸入驗證是一種功能強大的SQL注入控制手段。所謂輸入驗證,就是通過對應(yīng)用程序的輸入數(shù)據(jù)進行驗證,從而保證其符合應(yīng)用程序中已定義標(biāo)準(zhǔn)的過程。此方法既可以將參數(shù)限制成固定的某種類型,也可以通過使用正則表達式或業(yè)務(wù)邏輯進行輸入驗證。
(三)編碼輸出
篇4
關(guān)鍵詞: Web安全; SQL注入; 漏洞檢測; 攻擊防御
中圖分類號: TP391
文獻標(biāo)志碼:A
文章編號: 2095-2163(2016)06-0087-03
0引言
最近十年來,互聯(lián)網(wǎng)產(chǎn)業(yè)和技術(shù)發(fā)展蓬勃迅速,社會的各個領(lǐng)域都已經(jīng)與Web應(yīng)用建立了密切聯(lián)系。使用互聯(lián)網(wǎng)已經(jīng)成為現(xiàn)代生活方式的不二選擇。在全世界,大致可知應(yīng)有數(shù)以億計的網(wǎng)絡(luò)服務(wù)器都在提供互聯(lián)網(wǎng)服務(wù)。但與此同時,這些網(wǎng)絡(luò)服務(wù)器也無時無刻都會遭遇到各類惡意攻擊。
數(shù)據(jù)庫是Web應(yīng)用系統(tǒng)的基礎(chǔ)組成部分,存儲著大量關(guān)鍵敏感信息,因此,侵入和攻擊數(shù)據(jù)庫,竊取數(shù)據(jù)信息是網(wǎng)絡(luò)攻擊的主要目的和施手段。根據(jù)相關(guān)組織調(diào)研數(shù)據(jù)顯示,Web應(yīng)用十大關(guān)鍵風(fēng)險排名第一位就是注入攻擊。在全世界發(fā)生的Web服務(wù)系統(tǒng)攻擊實踐中,大約有60%的行為均可標(biāo)注為SQL注入攻擊。因此,研究SQL注入攻擊及檢測防御技術(shù)對有效控制和降低網(wǎng)絡(luò)攻擊事件發(fā)生必將具有重大現(xiàn)實意義及作用。
[BT4]1SQL注入攻擊研究
[BT5]1.1SQL注入攻擊原理
SQL注入攻擊(SQL injection)是利用Web 應(yīng)用程序的設(shè)計漏洞來實現(xiàn)Web應(yīng)用系統(tǒng)、尤其是數(shù)據(jù)庫的入侵,從而最終達到獲取或破壞數(shù)據(jù)的一種非法策略及手段。通過SQL注入可能會導(dǎo)致如下后果:入侵者惡意進占了數(shù)據(jù)庫服務(wù)器、獲取數(shù)據(jù)庫高級操作權(quán)限、竊取數(shù)據(jù)庫中存儲的關(guān)鍵數(shù)據(jù)信息等。
SQL注入攻擊的發(fā)起者多是利用Web頁面中存在的漏洞,有針對性地構(gòu)造SQL語句,并蓄意引導(dǎo)數(shù)據(jù)庫服務(wù)器執(zhí)行這些SQL語句,通過截取用戶名和密碼等重要信息,從而全面獲取了數(shù)據(jù)庫控制權(quán)限。
SQL注入攻擊的可選研究方式主要有:
1)使用注釋符和恒等式;
2)使用union語句進行聯(lián)合查詢;
3)使用insert或update語句對數(shù)據(jù)庫數(shù)據(jù)表內(nèi)數(shù)據(jù)進行增加或修改;
4)利用一些內(nèi)置函數(shù)輔助進行攻擊等。
在此,將結(jié)合前2種方法給出實現(xiàn)過程詳述與闡析。
1.1.1使用注釋符和恒等式
眾所周知,如果要查詢數(shù)據(jù)庫的user表中所有條目,那么正確的查詢語句為:
SELECT * FROM user WHERE username = 'user' AND password = 'pawd'
利用ASP 實現(xiàn)時,需要連接字符串,而后再加上SQL 命令,最后執(zhí)行查看返回的結(jié)果是否為空。那么SQL 語句嵌套在ASP 代碼中的表現(xiàn)形式可描述如下:
var sql = "SELECT * FROM user WHERE username = '" +loginname + "' AND密碼 = '" +loginpwd + "'";(loginname字段與loginpwd字段分別存儲了用戶在網(wǎng)頁上所填入的用戶名和密碼信息。)
但是當(dāng)用戶在Web頁面文本框內(nèi)輸入的內(nèi)容為:loginname=‘ or 1=1 -- ,而loginpwd 的內(nèi)容任意輸入時,此時在ASP 中的查詢語句則演變成:
SELECT * FROM user WHERE username=‘’or 1=1 --AND password = 'pawd '
顯然,SQL語句中密碼驗證部分被“- -”注釋符當(dāng)成了注釋語句,同時,由于“1=1”恒等式的存在導(dǎo)致用戶名驗證部分永遠為真。用戶名驗證和密碼驗證均發(fā)生了失效,這樣攻擊者就可以登錄進入Web應(yīng)用系統(tǒng)了。
1.1.2使用union語句進行聯(lián)合查詢
利用union關(guān)鍵字查詢一些數(shù)據(jù)庫用戶信息、數(shù)據(jù)庫版本等信息。還可以用union關(guān)鍵字來獲取其他信息。通過頁面錯誤信息提示得到當(dāng)前數(shù)據(jù)庫名稱、用戶名等關(guān)鍵信息。而且,還可通過多次的報錯測試,逐步獲得多種關(guān)鍵數(shù)據(jù)信息,從而掌握數(shù)據(jù)庫內(nèi)部結(jié)構(gòu)、數(shù)據(jù)庫用戶名等信息,為侵入數(shù)據(jù)提供實現(xiàn)基礎(chǔ)。
[BT5]1.2SQL注入攻擊流程
SQL注入攻擊的基礎(chǔ)流程可概述為:首先,檢測Web登錄頁面中是否有SQL注入漏洞,從而構(gòu)建SQL注入點;其次,利用已經(jīng)構(gòu)建的SQL注入點將本該基于頁面獲取的驗證參數(shù)通過SQL語句的語法組合傳遞給數(shù)據(jù)庫;然后,經(jīng)過多次試探,陸續(xù)可得到數(shù)據(jù)庫類型、數(shù)據(jù)庫結(jié)構(gòu)、數(shù)據(jù)表信息以及數(shù)據(jù)庫賬號等;最后,則根據(jù)已知信息構(gòu)造并執(zhí)行SQL語句,達到侵入數(shù)據(jù)庫,獲取數(shù)據(jù)或?qū)嵤?shù)據(jù)更改等目的。研究設(shè)計步驟可展示如下:
[HT5”H][ST5”HZ]步驟1[HT5”SS][ST5”BZ]判斷SQL注入點。通常使用的SQL注入點判斷方法可分述為如下2種:
1)把“’”添加到Web提交請求的尾部,再根據(jù)Web頁面反饋的提示信息來判斷該系統(tǒng)所使用的數(shù)據(jù)庫類型是否存在SQL注入漏洞。
但是,程序設(shè)計者可以進一步通過加入判別規(guī)則而將單引號進行過濾,那么將使單引號測試最終失效,從而無法判斷是否存在SQL注入點。
2)將“and 1=1”或“and 1=2”添加到提交請求的末尾,若添加“and 1=1”的提交請求可以正常返回顯示信息、而添加“and 1=2”的提交請求卻返回出錯提示,此時則說明該Web頁面存在注入漏洞;如果上述2個判別式均可返回提示信息,如此該Web頁面即是安全的,也就是不存在SQL注入漏洞。
[HT5”H][ST5”HZ]步驟2[HT5”SS][ST5”BZ]猜測表名和字段名。如果訪問的Web頁面存在注入漏洞,則可以在提交請求語句后加入“and exists (select count(*)from student”,如果頁面執(zhí)行正常,沒有錯誤提示,則說明student表是存在的,否則student表不存在,可以更換名稱繼續(xù)測試,直到猜出表名為止。
如果將Count(*)替換為Count(字段名),則用同樣的方法即可進行字段名的探測。
[HT5”H][ST5”HZ]步驟3[HT5”SS][ST5”BZ]進行注入攻擊。當(dāng)已經(jīng)基本了解數(shù)據(jù)庫的內(nèi)部結(jié)構(gòu)后,黑客即可侵入后臺數(shù)據(jù)庫了。那么,這些黑客所需要的并不是DBA(數(shù)據(jù)庫管理員)賬號,而是DBA權(quán)限。當(dāng)掌控了DBA權(quán)限后,據(jù)此將可獲得更高級別的權(quán)限,這樣便可以在Web系統(tǒng)中留下后門、植入木馬等。如果使用sa 連接數(shù)據(jù)庫,則能夠調(diào)用xp_cmdshell 等存儲過程,此時就可以對應(yīng)用系統(tǒng)、數(shù)據(jù)庫乃至操作系統(tǒng)進行修改和控制了。
[BT4]2SQL注入攻艏觳餳際
根據(jù)檢測發(fā)生的時間和目的差異,SQL注入攻擊檢測可以分成為入侵前檢測和入侵后檢測。具體來說,利用漏洞掃描工具和構(gòu)造SQL注入語句檢測即是入侵前檢測的主要手段,而入侵后檢測的方法則是檢查服務(wù)器日志文件。通常情況下,入侵者在發(fā)動SQL注入攻擊后,Web服務(wù)器和數(shù)據(jù)庫服務(wù)器的日志文件都會存有相應(yīng)的登錄和操作記錄?;诖?,研究探討可知,通過使用如下方法即能改善與增進SQL注入漏洞檢測,分析闡釋如下。
1)利用漏洞掃描工具。常用的漏洞掃描工具有:HDSI、NBSI、Domain、Sqlmap、BSQL Hacker、The Mole、Pangolin(穿山甲)。需要指出的是,這些工具既是網(wǎng)站維護者可以善加利用的一些檢測工具,同時卻也是網(wǎng)絡(luò)攻擊者用來攻擊Web服務(wù)器的首選工具。
2)通過SQL注入點,執(zhí)行非法SQL語句。將SQL語句的永真式或永假式追加在Web頁面請求后,根據(jù)頁面執(zhí)行后得到反饋信息來判斷是否存在SQL注入點。對已發(fā)現(xiàn)的SQL注入點,通過構(gòu)造and exits(select……)語句進行數(shù)據(jù)庫結(jié)構(gòu)判斷。
3)日志文件檢查。一般情況下,Web應(yīng)用系統(tǒng)遭到入侵后都會留下相關(guān)操作記錄在日志文件中。通過讀取并分析數(shù)據(jù)庫和Web服務(wù)器的日志文件來判斷系統(tǒng)是否發(fā)生了入侵則是一種行之有效的方法。只是,對于經(jīng)驗老到的黑客來說,在實施入侵后則會進行殘留痕跡的清理。
4)對訪問請求進行檢測。正常的訪問請求不應(yīng)該包含SQL關(guān)鍵字?;谶@一前提,如果在HTTP請求中含有SQL關(guān)鍵詞、特殊字符或者SQL語義的句子,即可初步判定為一次攻擊行為。
[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注入攻擊,必須從多個層面設(shè)計應(yīng)對策略:第一,從數(shù)據(jù)庫設(shè)計和數(shù)據(jù)庫管理方面;第二,從Web系統(tǒng)開發(fā)設(shè)計方面;第三,從Web系統(tǒng)管理維護方面?,F(xiàn)給出綜合論述如下。
[BT5]3.1數(shù)據(jù)庫管理防御措施
使用安全的數(shù)據(jù)庫賬號,嚴(yán)格管控數(shù)據(jù)庫賬號權(quán)限,謹(jǐn)慎分配sa權(quán)限,用于程序連接數(shù)據(jù)庫的用戶使用數(shù)據(jù)庫用戶角色組的成員,同時嚴(yán)禁使用服務(wù)器角色組成員。
在數(shù)據(jù)庫服務(wù)器上刪除多余的擴展存儲過程,尤其是訪問注冊表的存儲過程。
DBA要將數(shù)據(jù)庫服務(wù)器上的示例腳本最大限度移除,有效減少冗余腳本數(shù)據(jù)量。
數(shù)據(jù)庫應(yīng)設(shè)置高強度密碼,提升密碼安全性。
[BT5]3.2Web系統(tǒng)設(shè)計防御技術(shù)
探尋目前安全問題的現(xiàn)象機理可知,Web系統(tǒng)開發(fā)人員應(yīng)建立全局性的安全意識,在設(shè)計過程中充分考慮可能出現(xiàn)的安全漏洞,編寫安全代碼,防患于未然。
在此基礎(chǔ)上,Web程序設(shè)計者則應(yīng)保證后臺研發(fā)程序能夠具備對用戶提交的訪問請求參數(shù)、pose數(shù)據(jù)、查詢關(guān)鍵字進行嚴(yán)格檢測和限制的功能;異常錯誤界面可以跳轉(zhuǎn)指定界面,在設(shè)計上保證不會將錯誤信息暴露給Web系統(tǒng)使用者;而當(dāng)涉及到數(shù)據(jù)庫訪問時,應(yīng)采用加密傳輸,保證絕不使用明文傳遞參數(shù);另外,針對SQL注入攻擊常用方式,應(yīng)嘗試設(shè)立SQL語句的關(guān)聯(lián)構(gòu)建規(guī)則。
[BT5]3.3系統(tǒng)管理維護防御措施
系統(tǒng)管理員應(yīng)及時更新可為Web系統(tǒng)運行提供基礎(chǔ)支持的關(guān)鍵軟件,確保攻擊者無法通過操作系統(tǒng)漏洞進行入侵。此外,應(yīng)關(guān)閉相關(guān)對外連接端口,如TCP 1433/UDP 1434。系統(tǒng)管理員還應(yīng)定期檢查系統(tǒng)中用戶密碼,提升密碼強度,建立密碼定期更換的長效機制。同時,Web系統(tǒng)管員也要定期對Web系統(tǒng)日志引入安全審核,檢查是否存在異常訪問記錄,確保能夠及時發(fā)現(xiàn)系統(tǒng)安全隱患。
[BT4]4結(jié)束語
作者在本文中介紹了SQL注入攻擊的原理和方法、如何檢測SQL注入漏洞、怎樣防御SQL注入攻擊方面的內(nèi)容。通過本文,讀者對SQL注入建立了一個全面清晰的認(rèn)識,對如何檢測和防御SQL注入攻擊也獲得了基本了解,并掌握了一定的基礎(chǔ)方法及有效防范手段。
當(dāng)前的時代是一個互聯(lián)網(wǎng)時代。網(wǎng)絡(luò)安全問題既是互聯(lián)網(wǎng)安全問題,也是社會安全問題。作為網(wǎng)絡(luò)中最為常見的攻擊手段,SQL注入攻擊給互聯(lián)網(wǎng)造成了巨大的破壞,也帶來了難以估量的經(jīng)濟損失。因而研究實現(xiàn)有效防御SQL注入攻擊,對于提升Web網(wǎng)絡(luò)系統(tǒng)的安全性無論從經(jīng)濟、社會、倫理方面都將具有重要意義。
參考文獻:
楊章瓊,陳效軍,王濤. SQL注入攻擊淺析[J]. 計算機光盤軟件與應(yīng)用, 2012(16):103-104.
[2] 楊豐嘉. 淺談網(wǎng)站SQL注入攻擊防護[J]. 計算機光盤軟件與應(yīng)用, 2013(13):144.
[3] 劉秀梅,辛陽,徐勤. SQL注入攻擊及防御方法研究[EB/OL]. [2016-09-21].http:///releasepaper/content/201609-190.
[4] 龐博,高杰. 基于的SQL注入攻擊與防范[J]. 輕工科技,2009,25(9):86-87.
[5] 齊林,王靜云,蔡凌云,等. SQL注入攻擊檢測與防御研究[J]. 河北科技大學(xué)學(xué)報, 2012,33(6):530-533.
[6] 鄭斌. 黑客攻防入門與進階[M]. 北京:清華大學(xué)出版社,2010.[ZK)]
[FL)]
[CDF61]
[HT5”SS][ST5”BZ][WT5”BZ](上接第86頁)
[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)來設(shè)計更新數(shù)據(jù)表中的數(shù)據(jù)。
另外,還需提及的就是,本文實例所用的數(shù)據(jù)表均基于xxsf(學(xué)校收費數(shù)據(jù)庫)中的2個表,分別是:
xsxx(rxnf,xh,xm,xb,ksh,sfz,zydm,zsid)
zysf(zydm,zymc,lsyx,pycc,xxnx,xfbz,jcfbz)
[BT4]5結(jié)束語
SQL Server中的游標(biāo)在原理上具有C語言指針一樣的語言結(jié)構(gòu),相應(yīng)地則設(shè)計提供了一種在服務(wù)器內(nèi)部處理結(jié)果集的方法。使用游標(biāo)可以通過遍歷操作逐一地從結(jié)果集中實現(xiàn)數(shù)據(jù)讀取,也可以對結(jié)果集中某些數(shù)據(jù)重點加設(shè)更新或刪除的操作。本文以學(xué)校收費數(shù)據(jù)庫為背景并結(jié)合具體的實例來闡述游標(biāo)的使用,游標(biāo)可以面向結(jié)果集中的每一行進行相同或不同的操作,這不僅提升了SQL語句處理復(fù)雜查詢的能力,而且還降低了系統(tǒng)開銷和潛在的阻隔情況,在一定程度上解決了許多應(yīng)用程序不能把整個結(jié)果集作為一個單元來處理的問題。
[HS1*2][HT5H]參考文獻:[HT]
[WTBZ][ST6BZ][HT6SS][1] [ZK(#〗
[HJ*2]
趙慧玲,毛應(yīng)爽,孟憲穎. 基于SQL游標(biāo)的研究與應(yīng)用[J]. 科技創(chuàng)新導(dǎo)報,2012(28):31-32.
[2] 劉志成,寧云智,劉釗,編著. SQL Server實例教程[M]. 北京:電子工業(yè)出版社,2013.
[3] 薛麗香,汪東芳. 淺談SQL Server數(shù)據(jù)庫中游標(biāo)的使用[J]. 福建電腦,2016(6):157-158.
[4] 陳芳勤. SQL Server 2000中游標(biāo)的應(yīng)用[J]. 中國科技信息,2008(13):96,99.
篇5
摘 要:這套固定資產(chǎn)管理系統(tǒng)管理范疇相對全面,覆蓋了固定資產(chǎn)所屬部門和類別、固定資產(chǎn)的各項屬性、折舊計算以及維修紀(jì)錄等一系列相關(guān)項目。詳細介紹了SQL數(shù)據(jù)庫的設(shè)計過程,從系統(tǒng)功能的實現(xiàn)出發(fā),對系統(tǒng)進行了功能模塊分類。最后用圖表的形式把數(shù)據(jù)庫表達出來。
關(guān)鍵詞:數(shù)據(jù)庫;實體;SQL;
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2007)01―10024-02
1 引言
在成本估算中,固定資產(chǎn)扮演著一個重要的角色,好的成本估算都會考慮固定資產(chǎn)對總成本的各種影響。尤其是初期投入和分期投入大的企業(yè),固定資產(chǎn)的影響對企業(yè)的生存更是舉足輕重。這套固定資產(chǎn)管理系統(tǒng)負(fù)責(zé)對企業(yè)和家庭的固定資產(chǎn)做一個全方位的資金描述。
數(shù)據(jù)是計算機化的信息,是計算機可以直接處理的最重要的對象[1]。數(shù)據(jù)庫是存放數(shù)據(jù)的最佳場所,數(shù)據(jù)庫是指按特定目的收集的、長期存儲在計算機內(nèi)的有組織的可共享的數(shù)據(jù)集合。收集到大量數(shù)據(jù)后.需要一個軟件系統(tǒng):數(shù)據(jù)庫管理系統(tǒng)DBMS(Database Management System),對其進行科學(xué)的組織與存儲[2]。固定資產(chǎn)管理系統(tǒng)用以監(jiān)控固定資產(chǎn)的整個生命期。建立各個對象的ER(實體關(guān)系)模型,將該模型轉(zhuǎn)換成關(guān)系數(shù)據(jù)庫[3]。關(guān)系數(shù)據(jù)庫具有嚴(yán)格的實體關(guān)系,便于擴充業(yè)務(wù),同時便于與管理系統(tǒng)集成[4]。后臺數(shù)據(jù)庫采用SQL Server 2000,它是當(dāng)前基于C/S開發(fā)模式的主數(shù)據(jù)庫產(chǎn)品之一,具有性能穩(wěn)定,便于操作維護和具有安全可靠性等特點[5]。從獲得固定資產(chǎn)開始(可以是購置或者贈送等多種途徑),經(jīng)歷固定資產(chǎn)使用、維修保養(yǎng)的全過程,直至固定資產(chǎn)報廢。
2 系統(tǒng)實現(xiàn)的功能
要對固定資產(chǎn)進行有效的管理,就需要管理固定資產(chǎn)的每一個方面。固定資產(chǎn)管理的要求基本上可以歸納為以下幾個方面:
已有固定資產(chǎn)的瀏覽:固定資產(chǎn)的添加、刪除、修改功能:要求對每個固定資產(chǎn)的維修、保養(yǎng)進行詳細記錄,固定資產(chǎn)的折舊計算功能;固定資產(chǎn)的變更功能;固定資產(chǎn)的審核功能;固定資產(chǎn)的統(tǒng)計功能;相關(guān)部門、類別管理功能;用戶登陸權(quán)限鑒別功能;密碼修改功能;新用戶添加功能。
3 總體設(shè)計
3.1 數(shù)據(jù)流分析
分析固定資產(chǎn)生命周期中涉及的所有處理過程.可以得到期間的數(shù)據(jù)流動情況。
獲得一項新的固定資產(chǎn),將其信息添加進本系統(tǒng);審核,滿足條件則通過審核,可以參與統(tǒng)計和折舊;某項固定資產(chǎn)出現(xiàn)破損或者保養(yǎng)期限到,送指定單位維修或保養(yǎng),將相關(guān)信息添加至本管理系統(tǒng);某項固定資產(chǎn)發(fā)生使用權(quán)交移,記錄變更信息:
有財會需要,對部分固定資產(chǎn)進行折舊計算.并導(dǎo)出折舊相關(guān)數(shù)據(jù):有統(tǒng)計需要,對部分固定資產(chǎn)進行統(tǒng)計,并導(dǎo)出統(tǒng)計數(shù)據(jù);新建部門,為該部分購人固定資產(chǎn)。
固定資產(chǎn)管理數(shù)據(jù)流圖如圖1所示。
數(shù)據(jù)流圖的相關(guān)說明:
新固定資產(chǎn)經(jīng)過添加后可直接進入數(shù)據(jù)庫保存起來,但屬于未審核資產(chǎn),其相關(guān)信息處理可以流向?qū)徍瞬襟E外,不可再流向其它處理步驟。當(dāng)然,在添加新資產(chǎn)的同時對于滿足審核條件的固定資產(chǎn),可直接參與審核步驟,然后再保存進數(shù)據(jù)庫中:
當(dāng)已審核的固定資產(chǎn)需要發(fā)生變更時,可經(jīng)過變更操作,成為未審核資產(chǎn),可以不再做任何處理而存人數(shù)據(jù)庫,也可以經(jīng)過審核后再存人數(shù)據(jù)庫:
當(dāng)某項固定資產(chǎn)折舊期限到期后,從數(shù)據(jù)庫中提出來,進行折舊計算,把折舊后的折舊額、原值和殘值等計算結(jié)果保存回數(shù)據(jù)庫。
3.2 系統(tǒng)功能設(shè)計
根據(jù)需求分析得出的結(jié)果,并綜合上文流程分析,可以總結(jié)出系統(tǒng)應(yīng)該具備的功能:
(1)用戶登陸功能
通過用戶名和密碼對用戶進行驗證.合法用戶給予通過.不合法用戶則拒絕其進入系統(tǒng)。
(2)固定資產(chǎn)管理功能
對已有固定資產(chǎn)進行修改、刪除和審核,也可以添加新的固定資產(chǎn)進來。
(3)固定資產(chǎn)的查詢功能
按全部、部門和資產(chǎn)類型分別進行查詢?yōu)g覽。
(4)部門信息設(shè)置功能
可以對已有部門進行更名和刪除,也可以添加新的部門。
(5)固定資產(chǎn)類別設(shè)置功能
可以對已有類別進行更名和刪除,也可以添加新的類別。
(6)維修管理功能
可以按全部、已經(jīng)送修和維修完畢來查詢相關(guān)固定資產(chǎn)的維修狀況。還要能夠添加需要維修的固定資產(chǎn)進入維修管理。
(7)折舊功能
所有審核過的固定資產(chǎn)都可以參與折舊計算。所以有必要把未折舊資產(chǎn)和已折舊資產(chǎn)分開顯示。對于未折舊資產(chǎn)使用某種折舊算法進行計算。
(8)分類統(tǒng)計輸出功能
實現(xiàn)按部門資產(chǎn)統(tǒng)計和按資產(chǎn)類型統(tǒng)計,并且兩種統(tǒng)計結(jié)果都能夠?qū)С鲋链蛴≡O(shè)備。
(9)修改密碼功能
對當(dāng)前用戶可以在提交正確舊密碼之后輸入新的密碼.并在下一次登陸系統(tǒng)時生效。
(10)退出系統(tǒng)功能
3.3 子模塊功能設(shè)計
以上系統(tǒng)功能設(shè)計所產(chǎn)生的一系列功能相互之間是離散的.并沒有邏輯聯(lián)系性。在展開進一步設(shè)計之前需要對整個系統(tǒng)按照各功能之間隱含的邏輯關(guān)系進行劃分子模塊。有三個子模塊:
(1)系統(tǒng)信息設(shè)置模塊:
其中包括一些跟固定資產(chǎn)信息沒有直接聯(lián)系的功能,例如部門信息設(shè)置功能、同定資產(chǎn)類別設(shè)置功能、系統(tǒng)用戶管理功能、密碼修改功能和退出系統(tǒng)功能。
(2)固定資產(chǎn)管理模塊:
這是整個系統(tǒng)的主要模塊,凡是跟固定資產(chǎn)密切相關(guān)的功能都被集成進來了。包括同定資產(chǎn)查詢?yōu)g覽功能、固定資產(chǎn)維修管理功能、同定資產(chǎn)變更功能、固定資產(chǎn)審核功能等等。
(3)固定資產(chǎn)統(tǒng)計模塊:
部門資產(chǎn)統(tǒng)計和資產(chǎn)類別統(tǒng)計。
3.4 系統(tǒng)功能結(jié)構(gòu)圖
同定資產(chǎn)管理系統(tǒng)結(jié)構(gòu)圖如圖2所示。
關(guān)于系統(tǒng)結(jié)構(gòu)圖的一點說明:
這個結(jié)構(gòu)圖能夠直觀地說明系統(tǒng)的功能模塊劃分情況,并明確指出了各模塊與數(shù)據(jù)庫之間的聯(lián)系,除了統(tǒng)計模塊只向外輸出數(shù)據(jù)外,其它兩個功能模塊和數(shù)據(jù)庫之間均存在數(shù)據(jù)的雙向流動。而且本網(wǎng)還說明了各子模塊相互之間并沒有橫向的聯(lián)系和數(shù)據(jù)交換存在,這樣設(shè)計有利于減少模塊之間的耦合度。
3.5 數(shù)據(jù)庫設(shè)計
3.5.1 數(shù)據(jù)庫各實體及屬性
以下是各實體及其屬性:
(1)同定資產(chǎn)表(編號、資產(chǎn)編號、資產(chǎn)名稱、資產(chǎn)類型編號、生產(chǎn)廠商、資產(chǎn)型號、使用日期、使用部門編號、使用年限、負(fù)責(zé)人員、原值、殘值率、狀態(tài)、增加方式、提交日期、有否折舊、有否審核)
(2)資產(chǎn)修理表(編號、資產(chǎn)編號、修理日期、維修單位、維修原因、當(dāng)前狀態(tài)、維修費用、維修結(jié)果、提交日期)
(3)部門表(部門編號、部門名稱)
(4)資產(chǎn)類型表(類型編號、類型名稱)
(5)用戶表(用戶名、密碼、用戶類型)
3.5.2 E-R圖
E-R圖符號如圖3所示。
3.5.3數(shù)據(jù)字典及數(shù)據(jù)庫
可以根據(jù)得到的實體,建立數(shù)據(jù)字典。數(shù)據(jù)字典是必要的.有了數(shù)據(jù)字典,就能建立數(shù)據(jù)庫。
(1)固定資產(chǎn)信息表Asserts
篇6
關(guān)鍵詞:維修;數(shù)據(jù);信息;網(wǎng)絡(luò)化;維修管理系統(tǒng);SQL Server 2000
中圖分類號:TP311.52文獻標(biāo)識碼:A文章編號: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
一、引言
近年來,隨著我國信息技術(shù)的飛速發(fā)展,計算機應(yīng)用已逐漸滲透到各個領(lǐng)域。通過使用計算機可以減少大量的人工操作,提高工作效率。很多企業(yè)都在開發(fā)自己的管理系統(tǒng),以便對本單位的基本信息和各項工作進行計算機管理。而利用計算機來管理信息和處理信息,就需要利用數(shù)據(jù)庫管理系統(tǒng)軟件來開發(fā)各個行業(yè)的實用軟件,在企業(yè)管理領(lǐng)域內(nèi),計算機的應(yīng)用已經(jīng)相當(dāng)廣泛,各種管理機制與企業(yè)運作流程都與計算機緊密結(jié)合在一起,計算機的應(yīng)用進一步完善了企業(yè)的管理,提高了企業(yè)的現(xiàn)代化管理形象,因此在此基礎(chǔ)上開發(fā)了企業(yè)維修管理系統(tǒng)這個軟件。
二、Windows下的ASP開發(fā)平臺
Microsoft Windows軟件的出現(xiàn),為PC用戶提供了一個直觀的、圖形豐富的工作環(huán)境。圖形用戶界面使應(yīng)用程序更易于學(xué)習(xí)和使用,用戶只要簡單地用鼠標(biāo)按鈕點按“菜單”中的命令就可以執(zhí)行指定的操作,而不必鍵入復(fù)雜的命令。屏幕上的多窗口可以使用戶同時運行多個程序,并可以通過對話框輸入所需要的信息或讓用戶選擇。
ASP技術(shù)ASP(Active Server Pages動態(tài)網(wǎng)頁)是微軟公司推出的一種用以取代CGI(Common Gateway Interface通用網(wǎng)關(guān)接口)的技術(shù)。目前,Internet上的許多基于Windows平臺的Web站點已開始應(yīng)用ASP來替換CGI。簡單地講,ASP是一個位于服務(wù)器端的腳本運行環(huán)境,通過這種環(huán)境,用戶可以創(chuàng)建和運行動態(tài)的交互式Web服務(wù)器應(yīng)用程序,如交互式動態(tài)網(wǎng)頁,包括使用HTML表單收集和處理信息,上傳與下載等等。
三、用戶需求分析
要開發(fā)一個網(wǎng)絡(luò)化的信息管理系統(tǒng),首先需要進行需求分析和總體設(shè)計,分析系統(tǒng)的使用對象和用戶需求,設(shè)計系統(tǒng)的體系結(jié)構(gòu)和數(shù)據(jù)庫結(jié)構(gòu),決定使用的開發(fā)工具和后臺數(shù)據(jù)庫,規(guī)劃項目開發(fā)速度。在實際的項目開發(fā)過程中,這些工作是非常重要的。
開發(fā)此維修信息管理系統(tǒng)軟件,以供企業(yè)相關(guān)人員如進行維修信息管理,維修管理系統(tǒng)的用戶是企業(yè)管理人員、企業(yè)負(fù)責(zé)人、維修人員、錄入員、相關(guān)單位的統(tǒng)計人員等等,方便各人員隨時修改、刪除、查詢各種信息。具體體現(xiàn)在各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸出和輸入。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計打下基礎(chǔ)。
四、系統(tǒng)體系結(jié)構(gòu)設(shè)計
在維修管理系統(tǒng)中,用戶管理模塊的功能比較簡單。在系統(tǒng)初始化時,有三種默認(rèn)的用戶。系統(tǒng)超級管理員用戶名為Super,一般管理員用戶名位Admin,普通用戶為Users,由程序設(shè)計人員手動的添加到數(shù)據(jù)庫中,超級用戶可以創(chuàng)建用戶、修改用戶信息以及刪除用戶;一般管理員只能操作部分相關(guān)信息,而普通用戶則只能查看有關(guān)信息。
五、系統(tǒng)總體設(shè)計
(一)系統(tǒng)總體功能設(shè)計。系統(tǒng)主要由基本信息維護、服務(wù)信息維修信息錄入、車況登記、數(shù)據(jù)庫管理、權(quán)限管理、登錄界面等系統(tǒng)管理等幾大模塊組成。通過該信息平臺,各類人員可以通過網(wǎng)絡(luò)進行數(shù)據(jù)讀取、錄入、查詢、修改、刪除、打印等各類管理事務(wù)工作,管理層可以及時了解各項事務(wù),根據(jù)相應(yīng)的工作計劃,定期上傳的各類工作數(shù)據(jù),填寫各類維修數(shù)據(jù),統(tǒng)計各種相關(guān)報表,查看數(shù)據(jù)、報表文件、人員工作業(yè)績、進行各地區(qū)間的業(yè)績評比和交流信息等。
(二)系統(tǒng)功能模塊設(shè)計。系統(tǒng)的操作界面分為三類:用戶操作界面、一般管理員界面、超級管理員界面。同時超級管理員可以將一般管理員的權(quán)限進行相應(yīng)調(diào)整,做到分工明確、操作方便、管理有效的特點。用戶界面只允許用戶進行查詢操作,了解一些工作動態(tài),加大了部門之間、職工之間的聯(lián)系,提高了工作的透明度,有利于提高工作效率。
六、運用ASP技術(shù)操作數(shù)據(jù)
(一)建立連接。利用SqlConnection對象的ConnectionString屬性可指定連接參數(shù)。
(二)數(shù)據(jù)信息錄入。利用原有系統(tǒng)的部分有用數(shù)據(jù)進行數(shù)據(jù)庫間轉(zhuǎn)換,節(jié)約人力和重復(fù)錄入數(shù)據(jù)的人員浪費,節(jié)約了有效的資金使用,完成了從老系統(tǒng)到新系統(tǒng)的平穩(wěn)過渡。
(三)更新、刪除、插入操作。系統(tǒng)數(shù)據(jù)的更新和維護是通過管理員登錄相應(yīng)的管理頁面,通過網(wǎng)頁界面將新數(shù)據(jù)或修改后的保存至數(shù)據(jù)庫中實現(xiàn)的。利用SqlCommand對象設(shè)置相應(yīng)的SQL命令來完成相應(yīng)的操作。例:執(zhí)行查詢SQL的語句,返回一個數(shù)據(jù)表:
七、系統(tǒng)安全的策略
為了保證系統(tǒng)的安全,本系統(tǒng)采用MD5加密認(rèn)證,以及用戶提供的與應(yīng)用程序有關(guān)的數(shù)據(jù)。提供良好的用戶編程接口以便于快速開發(fā)安全的有效登錄解決方案。
八、結(jié)束語
基于ASP的維修信息管理系統(tǒng)于2010年11月設(shè)計完成,之后為3個月的試用期。在試用期間,系統(tǒng)運行穩(wěn)定、安全性好,使相關(guān)使用人員能夠從繁瑣的數(shù)據(jù)管理與紙介翻閱中解放出來,提高了效率。同時也為公司管理層查閱個人維修資料和了解各種維修服務(wù)信息提供了方便,可以更好、更快進行數(shù)據(jù)上報、資料檢查和匯總材料上繳。該系統(tǒng)基本符合用戶需求并具有良好的可擴展性和模塊性,可以方便地組合各個模塊,也可以增加更多的功能模塊,以滿足各類信息管理的特定需求。
參考文獻:
[1]張巨儉,甘仞初.管理信息系統(tǒng)的發(fā)展方向及實現(xiàn)技術(shù)[J].計算機應(yīng)用研究,2003,1
篇7
一、《數(shù)據(jù)庫應(yīng)用技術(shù)-SQL Server》教學(xué)存在的問題
教材偏重理論知識。《數(shù)據(jù)庫應(yīng)用技術(shù)-SQL Server》是一門注重實踐、注重操作的課程,從當(dāng)前的教材內(nèi)容來看,教材中的理論知識部分非常多,而實踐部分的介紹比較少,內(nèi)容過于膚淺,導(dǎo)致教師在組織教學(xué)內(nèi)容時難以找到更多的實踐知識和內(nèi)容。關(guān)于SQL Server數(shù)據(jù)庫應(yīng)用技術(shù)需要扎實的數(shù)據(jù)庫理論做支撐,然而理論知識過多實踐內(nèi)容較少會使得學(xué)生難以理解和接受。
實驗項目內(nèi)容單調(diào)。根據(jù)歷年來我校畢業(yè)論文的完成情況來看,用到SQL Server來做的數(shù)據(jù)庫基本相同,僅是添加幾張表格,卻不會應(yīng)用 SQL Server中的存儲過程、觸發(fā)器等資源。根據(jù)我校實驗項目的內(nèi)容來看,其實原內(nèi)容基本來自教材,項目操作流于形式,但實際的實驗教學(xué)實踐中,學(xué)生很少參加實驗練習(xí),學(xué)不到真正的操作知識和操作本領(lǐng),導(dǎo)致了畢業(yè)設(shè)計作品過于雷同、單調(diào),絕大多數(shù)的畢業(yè)設(shè)計缺少實際的內(nèi)容。
教學(xué)手段單調(diào),缺乏良性互動。當(dāng)前我校教師均借助多媒體開展教學(xué),這也成為了一種習(xí)慣,使得教師們完全依賴多媒體課件,采用這樣的教學(xué)手段使得學(xué)生們在學(xué)習(xí)知識的時候顯得非常被動,隨著多媒體課件的迅速翻篇,學(xué)生很少有思考的時間,也難以和教師就某些知識點進行互動,學(xué)生也很難完整記錄課件中的代碼,導(dǎo)致學(xué)生動手能力差,在真正自己做項目時缺乏相應(yīng)的能力。
課程考核效率低?!稊?shù)據(jù)庫應(yīng)用技術(shù)-SQL Server》課程考核采取平時+實驗+期末的成績考核方式,考核方式表面上合理,然而在實際的操作環(huán)節(jié),實驗成績部分是根據(jù)平時成績來定,使得考核非常模糊,根據(jù)期末考試的內(nèi)容來看,考試內(nèi)容分為客觀題和主觀題,主觀題中有問答、程序填空和分析程序部分,沒有寫代碼的題目,這樣的考試內(nèi)容并不能檢驗出學(xué)生一是否,會自己獨立寫代碼。
二、《數(shù)據(jù)庫應(yīng)用技術(shù)-SQL Server》課堂教學(xué)改革與實踐對策
1.合理安排教材和教學(xué)內(nèi)容
在有條件的情況下可以重新編排《數(shù)據(jù)庫應(yīng)用技術(shù)-SQL Server》課程教材,結(jié)合數(shù)據(jù)庫原理與應(yīng)用技術(shù),改編教材中偏重理論知識的情況,加強數(shù)據(jù)庫實用技術(shù)部分的內(nèi)容。由于SQL Server 數(shù)據(jù)庫理論知識部分是SQL Server 數(shù)據(jù)庫實用技術(shù)的基礎(chǔ),在教材內(nèi)容設(shè)置方面,需要靈活安排教材內(nèi)容,對各知識點和各章節(jié)的順序進行適當(dāng)調(diào)整,例如在理論知識講解完以后適當(dāng)加入技術(shù)應(yīng)用部分的練習(xí),又或者在后期的SQL Server 數(shù)據(jù)庫技術(shù)之前回顧相應(yīng)的數(shù)據(jù)庫原理知識,通過這樣的教學(xué)內(nèi)容的安排促進學(xué)生對知識理論的學(xué)以致用。
若不能重新改編教材,教師則需要根據(jù)這樣的思路靈活布置教學(xué)內(nèi)容,例如在數(shù)據(jù)庫設(shè)計的教學(xué)內(nèi)容中,就是應(yīng)該先導(dǎo)入關(guān)系數(shù)據(jù)庫規(guī)范化理論部分的知識,然后再進行關(guān)系模式設(shè)計的學(xué)習(xí),并讓學(xué)生根據(jù)相應(yīng)的范式要求完成關(guān)系模式設(shè)計,讓學(xué)生溫故知新、理論應(yīng)用到實際、學(xué)以致用。SQL 語言在實際應(yīng)用中有很大的區(qū)別,這要根據(jù)不同的數(shù)據(jù)庫管理系統(tǒng)選擇Transact-SQL 語言,由此,教學(xué)內(nèi)容應(yīng)加強Transact-SQL 語言的講解,并加深學(xué)生對SQL Server 數(shù)據(jù)庫的環(huán)境配置與應(yīng)用技術(shù)的學(xué)習(xí)和掌握。
由于本課程的目的在于培養(yǎng)學(xué)生的 SQL Server 數(shù)據(jù)庫設(shè)計和開發(fā)能力,若只是根據(jù)傳統(tǒng)的教學(xué)內(nèi)容實施教學(xué),必定會導(dǎo)致學(xué)生對技術(shù)知識方面的欠缺,使得前臺開發(fā)語言連接到數(shù)據(jù)庫這部分技術(shù)知識不能銜接,最終不利于學(xué)生在軟件開發(fā)能力方面的培養(yǎng)。由此,必須要通過整合程序設(shè)計類課程的教學(xué)內(nèi)容,加強常用軟件開發(fā)工具所對于的SQL Server 數(shù)據(jù)庫技術(shù)。例如在案例教學(xué)中,需要對JAVA 程序、網(wǎng)站建設(shè)、.net 開發(fā)技術(shù)等設(shè)計編程部分加強相應(yīng)的技術(shù)講解,同時加強綜合設(shè)計性實驗的相關(guān)訓(xùn)練,在數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計與實現(xiàn)中提升實操能力。
2.創(chuàng)新教學(xué)方法
由于采用多媒體的教學(xué)手段的單一使得學(xué)生不能學(xué)到連貫的知識和技術(shù),并且沒有考慮到學(xué)生的主體地位,缺乏課堂互動與反饋,導(dǎo)致低效的教學(xué)效率。由此,以教師為主導(dǎo)的課堂教學(xué)要充分發(fā)揮教師的教學(xué)創(chuàng)新,采取項目教學(xué)法加強SQL Server各個知識點的講解應(yīng)用,最大限度地調(diào)動學(xué)生學(xué)習(xí)的積極性與主動性,讓學(xué)生獨立解決問題。
項目教學(xué)法。在整個教學(xué)過程中,用實際項目貫穿課程,讓學(xué)生學(xué)會項目需求分析,以此完成后期的概念、邏輯、物理等結(jié)構(gòu)的設(shè)計,從而開展數(shù)據(jù)庫的實施、運行和維護,加強學(xué)生對項目運作過程的熟練程度,提升學(xué)生對相關(guān)操作的掌握。
任務(wù)驅(qū)動法。目前在很多課程中都采用任務(wù)驅(qū)動法促進學(xué)生的自主學(xué)習(xí)。在本課程中,教師圍繞一個具體的數(shù)據(jù)庫系統(tǒng)布置的相應(yīng)的具體任務(wù),讓學(xué)生做好課前預(yù)習(xí)和思考,在上課時教師進行啟發(fā)式提問,并在課后又再一次布置任務(wù)讓學(xué)生加強練習(xí)和預(yù)習(xí)。在課堂前、課堂中以及課堂后的每一個任務(wù)都有一定的銜接性和關(guān)聯(lián),而學(xué)生也在任務(wù)驅(qū)動下的帶著目的去相互協(xié)作和互動,提升其對學(xué)習(xí)的興趣、主動性和成就感。
互動教學(xué)法。該教學(xué)法貫穿在本課程的所有課堂教學(xué)中,要通過教師和學(xué)生之間平等互動交流得以實現(xiàn),構(gòu)建以學(xué)生為主體的課程教學(xué),讓學(xué)生主動掌握知識、主動學(xué)習(xí)。在網(wǎng)絡(luò)時代,各種課程平臺相繼建立,例如云班課、微信平臺、微博平臺、班級QQ等,這些都是學(xué)生課下互動的學(xué)習(xí)平臺,此時教師應(yīng)主動加入學(xué)生的課后互動中,及時為學(xué)生答疑解惑,同時獲得學(xué)習(xí)反饋,便于做好課程教學(xué)的調(diào)整。此外教師也可以通過這些平臺上傳學(xué)?資料和軟件項目制作案例,讓學(xué)生的學(xué)習(xí)更加便利,幫助學(xué)生掌握知識。
3.加強實踐教學(xué),完善考核體系
本課程的實驗課時為48課時,旨在通過實驗訓(xùn)練學(xué)生的操作能力和知識運用能力。本教學(xué)環(huán)節(jié)在于考察學(xué)生對SQL Server 數(shù)據(jù)庫理論知識和相應(yīng)的技術(shù)應(yīng)用的情況,會在上課期間為學(xué)生布置一個大作業(yè),根據(jù)學(xué)生作業(yè)完成情況、實驗表現(xiàn)、實驗報告、動手能力來給出成績,完成本環(huán)節(jié)的考核。這樣的綜合考核方式能夠較為全面地考核學(xué)生,促進其學(xué)習(xí)的信心和熱情。整個實驗環(huán)節(jié)需要注意以下工作:
每一個實驗項目都要做好精心設(shè)計,安排學(xué)生預(yù)習(xí)相關(guān)理論和操作內(nèi)容,但實驗過程中為學(xué)生做好相關(guān)的操作示范,全程認(rèn)真指導(dǎo),及時對學(xué)生的操作給予反饋,激勵其學(xué)習(xí)。在整個操作過程中應(yīng)強調(diào)協(xié)作、互動,對數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計的合理性、缺陷、改進方案、注意事項進行探討,提升學(xué)生的互助、溝通、分析和解決問題的能力。實驗過程中所布置的大作業(yè)由2~3人一組協(xié)作完成,限定2周時間,題目范圍是數(shù)據(jù)庫管理系統(tǒng)的開發(fā)設(shè)計。這樣的一個訓(xùn)練作業(yè)起到了整合程序設(shè)計類課程知識技能的作用,根據(jù)作業(yè)中學(xué)生所學(xué)開發(fā)設(shè)計工具的應(yīng)用訓(xùn)練,促進學(xué)生的綜合能力。
篇8
關(guān)鍵詞:Java語言 數(shù)據(jù)庫操作 方法
中圖分類號:TP311.13 文獻標(biāo)識碼:A 文章編號:1007-9416(2013)10-0042-02
在任何計算機語言中數(shù)據(jù)庫都占據(jù)很重要的位置,可以說如果沒有數(shù)據(jù)庫就沒有計算機語言的應(yīng)用,對于Java語言中也是如此。當(dāng)前主流應(yīng)用的數(shù)據(jù)庫服務(wù)器主要有,微軟(MicroSoft)開發(fā)的SQL Server數(shù)據(jù)庫、甲骨文(ORACLE)公司的MySQL數(shù)據(jù)庫和Oracle數(shù)據(jù)庫等,使用Java編程語言連接SQL Server數(shù)據(jù)庫時,需要比較繁雜的系統(tǒng)環(huán)境配置,所以,在使用Java語言編寫應(yīng)用程序時,在數(shù)據(jù)庫服務(wù)器的選擇方面,多使用MySQL數(shù)據(jù)庫或Oracle數(shù)據(jù)庫。其中,中小型項目的開發(fā)一般多選用MySQL數(shù)據(jù)庫,在大型項目在開發(fā)中,大多選用Oracle數(shù)據(jù)庫。
在Java語言中,要對數(shù)據(jù)庫進行顯示、增加、修改、刪除等操作,主要采用JDBC(Java DataBase Connection)技術(shù)。這種技術(shù)為開發(fā)人員提供了一個標(biāo)準(zhǔn)的API接口,程序員通過調(diào)用純Java API來編寫調(diào)用數(shù)據(jù)庫在應(yīng)用程序。除此之外,還可以通過編寫程序調(diào)用JDBC的API,比較容易的實現(xiàn)對不同數(shù)據(jù)庫的訪問。
在計算機語言的學(xué)習(xí)過程中,對于大多數(shù)人來說數(shù)據(jù)庫的連接和操作是一個難點,筆者在多年的Java語言實踐中積累的連接和操作數(shù)據(jù)庫的方法和技巧與大家一起分享。
1 Java連接MySQL數(shù)據(jù)庫的方法
使用Java語言訪問多種不同數(shù)據(jù)庫的時候,可以通過編寫JDBC API調(diào)用來實現(xiàn),在連接不同數(shù)據(jù)庫在時候,安裝相應(yīng)的驅(qū)動程序即可。例如:要連接MySQL數(shù)據(jù)庫,就需要安裝MySQL數(shù)據(jù)庫的驅(qū)動程序“mysql-connector-java.jar”,這些驅(qū)動程序大多椒開源的,一般可以到官網(wǎng)或互聯(lián)網(wǎng)上下載。下載后的驅(qū)動程序存放的位置有要求,如果你沒有使用開放的開發(fā)環(huán)境,那么要將驅(qū)動程序存放在JDK安裝目錄下的lib文件夾中;如果你使用了Eclipse或其它的開發(fā)環(huán)境,那么要在這些環(huán)境中配置JDK的位置將驅(qū)動程序?qū)氲嚼锩妗?/p>
安裝完成數(shù)據(jù)庫在驅(qū)動程序之后,就可以編寫程序來實現(xiàn)對數(shù)據(jù)庫的連接。
(1)Class.forName(“com.mysql.jdbc.Driver”);
//此步驟為驅(qū)動程序的加載,另外驅(qū)動程序的名字還可以為org.gjt.mm.mysql.Driver。
(2)Connection con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/數(shù)據(jù)庫名字”,“用戶名”,“密碼”);
//創(chuàng)建與數(shù)據(jù)庫的連接
通過以上兩步驟后即可以完成與數(shù)據(jù)庫的連接,上面代碼1中forName()方法會拋出ClassNotFoundException,代碼2中g(shù)etConnection()方法會拋出SQLException異常,所以在程序中要進行異常的捕獲與處理。
2 數(shù)據(jù)庫連接的技巧
2.1 數(shù)據(jù)庫連接代碼的復(fù)用
在一個項目開發(fā)過程中,需要經(jīng)常的對數(shù)據(jù)庫進行操作,那么我們不能在一個項目中多次寫相同的代碼,這樣不利于代碼的更新與維護,所以我們可以將連接數(shù)據(jù)庫的代碼單獨的寫在一個Java文件的構(gòu)造方法中,這樣在需要進行數(shù)據(jù)庫連接時生成該類的對象即可調(diào)用到數(shù)據(jù)庫連接的代碼。
2.2 數(shù)據(jù)庫連接對象的關(guān)閉
在應(yīng)用程序運行在過程中,當(dāng)客戶端發(fā)起查詢或更新請求時,應(yīng)用程序就會通過JDBC API新建一個連接,與數(shù)據(jù)庫進行通信。如果,應(yīng)用程序有多個客戶端需要頻繁對數(shù)據(jù)進行操作,那么,就需要建立相應(yīng)多個在數(shù)據(jù)庫連接。所以,編寫應(yīng)用程序在時候在每一個客戶端使用數(shù)據(jù)庫完成之后,一定要釋放連接資源,包括Connection對象、Statement對象和ResultSet對象,否則會因資源耗盡而使應(yīng)用程序崩潰。因此,程序員在編寫應(yīng)用程序時,在處理數(shù)據(jù)庫操作方面必須謹(jǐn)慎,保證每次的數(shù)據(jù)操作之后及時釋放數(shù)據(jù)庫連接資源,提高應(yīng)用程序在穩(wěn)定性和健壯性。
一個數(shù)據(jù)庫通信連接一般可以支持多達幾百個的Statement對象。通常,在應(yīng)用程序中,每個程序在調(diào)用都需要構(gòu)造一個物理連接,而且每個Statement對象需要單獨占用一個物理連接。由于建立物理連接的在過程需要通過網(wǎng)絡(luò)反復(fù)溝通,比較浪費時間,所以在連接數(shù)據(jù)庫時,盡最大可能避免或者減少單個Statement對象獨占物理連接在情況。這樣的設(shè)置對于一般的網(wǎng)站來說還可以,如果一些訪問量比較大的網(wǎng)站,當(dāng)連接數(shù)超過這個值的時候數(shù)據(jù)庫服務(wù)器就會報錯,出現(xiàn)網(wǎng)站癱瘓等現(xiàn)象。所以對數(shù)據(jù)庫操作完成后,要調(diào)用相關(guān)對象的close()方法,將所創(chuàng)建的數(shù)據(jù)庫連接相關(guān)對象關(guān)閉,通常采取“先創(chuàng)建的對象后關(guān)閉”的原則。
在使用java編寫應(yīng)用程序時,通常將將數(shù)據(jù)庫的連接、關(guān)閉與異常處理同時寫在一個單獨的類文件的相關(guān)代碼。在類的構(gòu)造方法中編寫數(shù)據(jù)庫連接、數(shù)據(jù)庫關(guān)閉對象的方法,此外也可以將其它數(shù)據(jù)庫的操作方法寫在此方法中,例如數(shù)據(jù)庫的查詢、修改、插入和刪除等。當(dāng)需要進行數(shù)據(jù)庫操作時,生成這個類的對象,就可以進行數(shù)據(jù)庫的連接、關(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ù)庫驅(qū)動
(8)connection = DriverManager.getConnection(url, "root", "123");
(9)} catch (Exception ex) {
(10)System.out.println("數(shù)據(jù)庫驅(qū)動程序加載失?。?+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ù)庫連接池的使用
使用JDBC訪問網(wǎng)絡(luò)數(shù)據(jù)庫雖然簡單易用,但是這種方法對于Web開發(fā)來說,存在很多問題。比如文中前面提到的每一次Web請求都要建立一次數(shù)據(jù)庫連接,即浪費時間又占用內(nèi)存。而且對于大型的電子商務(wù)網(wǎng)站,同時幾百人乃至幾千人在訪問量,在進行數(shù)據(jù)庫連接操作時,要耗費大量在系統(tǒng)資源,影響網(wǎng)站的訪問速度。在標(biāo)準(zhǔn)JDBC API接口中,并沒有提供資源的管理方法,資源管理必須由應(yīng)用程序自己負(fù)責(zé)管理。雖然在JDBC規(guī)范中,強調(diào)了資源的關(guān)閉、回收及合理運用,但最穩(wěn)妥的方式,還是為應(yīng)用程序提供有效的管理手段。
對數(shù)據(jù)庫連接資源的管理是很重要的問題。我們可以使用“數(shù)據(jù)庫連接緩沖池”來解決資源的頻繁分配與釋放所造成的問題。將數(shù)據(jù)庫連接預(yù)先放在緩沖池中,當(dāng)需要建立數(shù)據(jù)庫連接時,就從“緩沖池”中取出,使用后再放回去。我們可以通過設(shè)定連接池中的最大連接數(shù)來防止太多的連接數(shù)量。
3 結(jié)語
上面講述了Java連接MySQL數(shù)據(jù)庫的方法和一些操作技巧,實際在進行數(shù)據(jù)庫操作時還有很多可以優(yōu)化的部分,除了優(yōu)化代碼部分以外,還可以優(yōu)化數(shù)據(jù)庫,包括數(shù)據(jù)結(jié)構(gòu)的調(diào)整、SQL語句的調(diào)整和服務(wù)器內(nèi)存分配的調(diào)整等等。另外在Java Web開發(fā)中也可以利用Hibernate框架來操作數(shù)據(jù)庫,它是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了輕量級的對象封裝,使Java程序員可以隨心所欲地使用對象編程思維來操縱數(shù)據(jù)庫。已經(jīng)得到了廣大企業(yè)和Java Web開發(fā)人員的認(rèn)可。
參考文獻
[1]黃丹.基于JDBC的數(shù)據(jù)庫訪問技術(shù)[J].軟件導(dǎo)刊,2010(03).
[2]聶凱,曹慢慢.Mysql數(shù)據(jù)庫的訪問方法淺析[J].科技資訊,2010(09).
[3]張作宸.JDBC原理及操縱數(shù)據(jù)庫方法[J].科技信息,2009(02).
篇9
關(guān)鍵詞:SqlServer;數(shù)據(jù)庫;維護計劃;備份
中圖分類號:TP309.3文獻標(biāo)識碼:A 文章編號: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ù)庫是目前廣泛使用的數(shù)據(jù)庫。備份和保護數(shù)據(jù)是數(shù)據(jù)庫維護的首要任務(wù),SqlServer本身具有比較強大的備份功能,但出現(xiàn)災(zāi)難的原因往往是由于硬盤的損壞,所以有必要在異地(異機)多保留一份備份數(shù)據(jù),以備不測。這就要求我們除sqlserver自帶功能外,還要探索其他的方法實現(xiàn)SqlServer數(shù)據(jù)庫自動的異地備份。
1 備份目標(biāo)
我們具體研究實現(xiàn)目標(biāo)包括:每天對數(shù)據(jù)庫進行兩個不同時刻的完全備份、保留最近1周的備份數(shù)據(jù)、備份數(shù)據(jù)實現(xiàn)異地(異機)存放。
每天對數(shù)據(jù)庫進行兩個不同時刻的完全備份;保留最近1周的備份數(shù)據(jù);備份數(shù)據(jù)實現(xiàn)異地(異機)存放;對于目標(biāo)的前兩條,我是利用SQL Server 2000本身自帶“數(shù)據(jù)庫維護計劃”來實現(xiàn)的;而最后一條我是通過手工編寫腳本來實現(xiàn)的。
具體如下:“數(shù)據(jù)庫維護計劃”是SQL Server 2000能夠?qū)崿F(xiàn)自動備份調(diào)度,以及自動刪除舊的數(shù)據(jù)備份,完全能夠滿足我我們備份要求。
2 實現(xiàn)步驟
2.1打開SQL Server“企業(yè)管理器”窗體
用鼠標(biāo)單擊任務(wù)欄上的“開始”按鈕中的“程序(P)”菜單下的“Microsoft SQL Server”子菜單中的“企業(yè)管理器”菜單項,即可打開SQL Server 2000的“企業(yè)管理器”窗體。
2.2找到“數(shù)據(jù)庫維護計劃”功能
在“企業(yè)管理器”窗體中左側(cè)的樹型選項卡中,用鼠標(biāo)單擊“+”圖標(biāo)擴展開“控制臺根目錄”下的“Microsoft SQL Servers”,可以看到其下有一個“SQL Server組”;接著繼續(xù)擴展開“SQL Server組”,此時可以看到其下出現(xiàn)了服務(wù)器的名稱;再繼續(xù)擴展開此服務(wù)器,可以看到其下列出了諸如“數(shù)據(jù)庫”、“數(shù)據(jù)轉(zhuǎn)換服務(wù)”等項目;最后單擊“管理”項目,可以看到其下存在一個“數(shù)據(jù)庫維護計劃”(如圖1)。
2.3創(chuàng)建“數(shù)據(jù)庫維護計劃”
鼠標(biāo)右擊“數(shù)據(jù)庫維護計劃”項目,選擇“新建維護計劃(P)”功能,將打開“數(shù)據(jù)庫維護計劃向?qū)А贝绑w,依照此向?qū)軌騽?chuàng)建一個新的“數(shù)據(jù)庫維護計劃”。
步驟1:單擊 “下一步(N)”按鈕,打開“選擇數(shù)據(jù)庫”窗體(如圖2)。在此窗體中選定文獻系統(tǒng)數(shù)據(jù)庫“tsgdb”。
步驟2:單擊圖2中的“下一步(N)”按鈕,打開“更新數(shù)據(jù)優(yōu)化信息”窗體(如圖3)。
在此窗體中可以對數(shù)據(jù)庫中的數(shù)據(jù)和索引重新進行組織,以及能夠設(shè)定在滿足一定條件的情況下,維護計劃自動刪除數(shù)據(jù)庫中的未使用的空間,以便提高性能。
本人沒有使用其中的功能。
步驟3:單擊圖3中的“下一步(N)”按鈕,打開“檢查數(shù)據(jù)庫完整性”窗體,如圖4所示。
在此窗體中可以設(shè)定維護計劃在備份數(shù)據(jù)庫前自動檢查數(shù)據(jù)庫的完整性,以便檢測由于硬件或軟件錯誤而導(dǎo)致數(shù)據(jù)的不一致。選中“檢查數(shù)據(jù)庫完整性[H]”復(fù)選框,因為有可能會修正一些錯誤,使備份的數(shù)據(jù)更有效。
步驟4:在“檢查數(shù)據(jù)庫完整性”窗體中的“下一步(N)”按鈕,打開“指定數(shù)據(jù)庫備份計劃”窗體。因為圖書館開館時間為8:00――12:00和14:00――21:00,所以我在“調(diào)度”中設(shè)為每天12:30開始備份和21:30開始備份,這樣做,即提高了數(shù)據(jù)庫備份的效率,又不會影響到文獻系統(tǒng)的正常使用。
對數(shù)據(jù)庫進行備份,則必須選定“作為維護計劃的一部分來備份數(shù)據(jù)庫[A]”復(fù)選框,指定存儲備份文件的位置:磁盤。設(shè)定“調(diào)度”后單擊“下一步(N)”按鈕則顯示“指定備份磁盤目錄”窗體(如圖6)。
在圖6中,指定存儲備份文件的目錄備份文件擴展名,因為我要保存最近1周的備份,所以設(shè)置備份計劃自動地刪除早于1周的備份文件。設(shè)定后,單擊“下一步(N)”按鈕則顯示“指定事務(wù)日志備份計劃”窗體。
步驟5:指定“事務(wù)日志備份計劃”的過程與步驟4的過程完全相同,只是在設(shè)定“調(diào)度”上稍有差別(因為我的要求是數(shù)據(jù)庫每天備份一次,事務(wù)日志每1小時備份一次)。
步驟6:對事務(wù)日志的備份計劃全部設(shè)定后,單擊“下一步(N)”按鈕則顯示“要生成的報表”窗體。在此窗體中可以指定用于存放整個備份計劃執(zhí)行過程中的日志的目錄。
步驟7:完成步驟6后,單擊“下一步(N)”按鈕則顯示“維護計劃歷史紀(jì)錄”窗體。
在此窗體中可以指定如何存儲此維護計劃的歷史紀(jì)錄(是存放在“本地服務(wù)器”上,還是在“遠程服務(wù)器”上),而且通過指定表中的行數(shù)可以限定歷史紀(jì)錄的存儲大小。
步驟8:完成步驟7后,單擊“下一步(N)”按鈕則顯示“正在完成數(shù)據(jù)庫維護計劃向?qū)А贝绑w(如圖7)。
在此窗體中自定義一個“計劃名”為“tsgdb備份”。
步驟9:完成步驟8后,單擊“完成”按鈕,則顯示“維護計劃已創(chuàng)建成功?!钡奶崾究?再單擊 “確定”按鈕即成功地設(shè)定了文獻系統(tǒng)數(shù)據(jù)庫維護計劃。
2.4 啟動SQL Server 2000以便執(zhí)行“作業(yè)”
完成第三步后,還需啟動SQL Server 2000 Agent(),以便執(zhí)行“數(shù)據(jù)庫維護計劃”作業(yè)。
與展開SQL Server 2000“數(shù)據(jù)庫維護計劃”的步驟一樣,在“管理”項目中,可以發(fā)現(xiàn)存在一個“SQL Server ”。
2.5 檢查結(jié)果
經(jīng)過上述步驟后,文獻系統(tǒng)數(shù)據(jù)庫的備份計劃就建立起來了??梢酝ㄟ^“資源管理器”來檢查備份目錄下是否存在相應(yīng)地備份文件。
通過以上操作,已經(jīng)實現(xiàn)了在服務(wù)器上保留最近一周的備份數(shù)據(jù)了,為了防止服務(wù)器本身硬件故障等情況對備份數(shù)據(jù)造成破壞,我又通過編寫腳本實現(xiàn)了備份數(shù)據(jù)的異地(機)存放。具體如下:
3 編寫腳本
新建文件名為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
說明:
172.16.0.8是數(shù)據(jù)庫服務(wù)器,DB_bk為服務(wù)器上存放備份數(shù)據(jù)的目錄,一定要先將其共享。
? net use \\172.16.0.8\DB_bkPASSWD_for_tsg /user:tsg
以用戶tsg訪問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盤中。參數(shù)含義:
/e復(fù)制目錄和子目錄,包括空的。
/h也復(fù)制隱藏和系統(tǒng)文件。
/y禁止提示以確認(rèn)改寫一個。
/d只復(fù)制那些源時間 比目標(biāo)時間新的文件。
編輯完成后保存文件,將文件后綴改為.bat,這樣就生成了一個批處理文件,我們使用windows自帶的“任務(wù)計劃”來調(diào)度它,實現(xiàn)數(shù)據(jù)在兩臺計算機之間的自動定時copy。
4 結(jié)論
這樣對數(shù)據(jù)庫的異地備份的實現(xiàn),這樣我們就能有效防止軟硬件損壞、人為操作錯誤等對數(shù)據(jù)庫造成破壞,來保障數(shù)據(jù)內(nèi)容。
參考文獻:
[1] 薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2004:247-248.
[2] 張家愛.基于日志的數(shù)據(jù)恢復(fù)及其在SQLSERVER中的實現(xiàn)[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2009(1).
[3] 趙松濤.SQL SERVER2000系統(tǒng)管理與應(yīng)用開發(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ì)之間的問題,是當(dāng)今巖土工程的熱點問題之一。筋-土界面上的摩擦阻力系數(shù)則是加筋土結(jié)構(gòu)設(shè)計和分析的重要參數(shù),性能參數(shù)的精準(zhǔn)測量對實際土體加筋工程具有重要指導(dǎo)意義[1-2]。我院自主研發(fā)一套充分考慮土工合成材料力學(xué)性能各項異性的新型直剪設(shè)備,避免了現(xiàn)行規(guī)范中試驗測試值與土工合成材料實際受力特性嚴(yán)重不符的問題,有效地解決了土工合成材料工程應(yīng)用中存在的安全隱患。同時,搭建一套基于組態(tài)王與SQL數(shù)據(jù)庫的直剪試驗操作系統(tǒng),實現(xiàn)了系統(tǒng)工作狀態(tài)實時監(jiān)控、特征數(shù)據(jù)實時顯示,數(shù)據(jù)及參數(shù)曲線輸出、存儲、查詢等功能,并對試驗數(shù)據(jù)進行處理,獲得了國家規(guī)范要求的土工合成材料剪切性能參數(shù)系列評價指標(biāo),計算結(jié)果準(zhǔn)確可靠。
2 土工合成材料各向異性直剪儀介紹
直剪設(shè)備主要包括機械、氣動以及電氣控制三大系統(tǒng),如圖1所示。機械部分主要包括機架、頂尖、回轉(zhuǎn)驅(qū)動、氣缸支撐架、上下剪切盒、直線導(dǎo)軌副等;氣動部分主要由氣缸、空壓機、閥體等組成;電氣控制系統(tǒng)主要由伺服電動缸、可編程控制器、傳感器、觸摸屏等組成。
本設(shè)備采用整體式機架,結(jié)構(gòu)緊湊,系統(tǒng)剛度大、強度高,極好地降低了導(dǎo)軌變形率,為直剪性能參數(shù)的精準(zhǔn)測量建立結(jié)構(gòu)基礎(chǔ)。上剪切盒外部形狀采用正八邊形以便于頂尖定位、加強系統(tǒng)可靠性及可加工性,同時相較于四邊形、六邊形等形狀有效減小下剪切盒內(nèi)徑,進而減小回轉(zhuǎn)驅(qū)動尺寸,降低整機尺寸及重量。高性能回轉(zhuǎn)驅(qū)動實現(xiàn)下剪切盒0~360°任意角度精確旋轉(zhuǎn),實現(xiàn)土工格柵各向異性性能參數(shù)直接測量,完美解決了現(xiàn)行規(guī)范試驗測試值與土工合成材料實際受力特性嚴(yán)重不符的問題,同時回轉(zhuǎn)驅(qū)動具備自鎖功能以保證直剪試驗中剪切面不發(fā)生旋轉(zhuǎn),保證直剪試驗準(zhǔn)確。
采用氣動加壓結(jié)合數(shù)據(jù)實時采集模塊,對壓力進行實時調(diào)節(jié),保壓時間高達2h且氣壓變化率≤0.1%,實驗過程壓力穩(wěn)定確保試驗采集數(shù)據(jù)準(zhǔn)確可靠。采用高精度伺服電動機與壓力傳感器聯(lián)合控制的方法,使剪切速度、剪切位移、剪切力得到精確控制,設(shè)備性能參數(shù)如表1所示。
3 直剪試驗操作系統(tǒng)
(1)系統(tǒng)功能介紹。直剪試驗操作系統(tǒng)用來指導(dǎo)操作人員安全高效、智能規(guī)范的開展土工合成材料剪切性能檢測,實現(xiàn)系統(tǒng)工作狀態(tài)實時監(jiān)控、特征數(shù)據(jù)實時顯示及剪切性能數(shù)據(jù)及曲線輸出、查詢等功能。本系統(tǒng)共分為系統(tǒng)菜單、操作功能按鈕、法向應(yīng)力與實驗時間顯示、狀態(tài)指示燈以及用戶登錄/退出等5個功能區(qū),如圖2區(qū)域1~5所示。
系統(tǒng)菜單分為系統(tǒng)說明、參數(shù)設(shè)置、實時數(shù)據(jù)、數(shù)據(jù)輸出、系統(tǒng)調(diào)試以及報警信息5個功能模塊。法向壓力及實驗時間反應(yīng)實驗過程實時法向應(yīng)力以及實驗剩余時間。狀態(tài)指示燈區(qū)域包括5個狀態(tài)指示燈,系統(tǒng)狀態(tài)正常色為綠色,異常時為紅色;運行狀態(tài)運行過程為綠色,試驗停止為灰色;報警狀態(tài)未出現(xiàn)報警為綠色,出現(xiàn)伺服異常、行程超出范圍、電機超載、壓力氣路連接異常等狀況時為紅色;法向應(yīng)力正常為綠色,應(yīng)力波動范圍超出理論法向應(yīng)力的2%時指示燈為紅色。限位狀態(tài)反應(yīng)剪切位移是否超出行程范圍,正常為綠色,超限則為紅色。
(2)系統(tǒng)操作流程及SQL實現(xiàn)。打開/退出組態(tài)王,進行SQL連接/連接,功能實現(xiàn)命令語言為:SQLConnect(IDDevice,"dsn=;uid=;pwd="),SQLDisconnect(\\本站點\IDDevice)
上述命令語言實現(xiàn)了組態(tài)王與SQL數(shù)據(jù)源的連接/斷開,將此命令寫入組態(tài)王應(yīng)用程序命令語言的啟動/結(jié)束中,以實現(xiàn)系統(tǒng)開始運行時就可以連接/斷開到數(shù)據(jù)庫[3]。
進入【系統(tǒng)調(diào)試】界面,調(diào)試各功能按鈕與數(shù)據(jù)顯示框,檢查系統(tǒng)是否正常;進入【參數(shù)設(shè)置】界面,輸入實驗參數(shù)和運動參數(shù);點擊【加壓】按鈕,并根據(jù)界面中間法向應(yīng)力顯示框進行調(diào)整直至試驗理論值;點擊【預(yù)壓】,彈出預(yù)壓界面,并進行系統(tǒng)預(yù)壓5 min以保證后續(xù)實驗過程壓力穩(wěn)定。
預(yù)壓結(jié)束,點擊【電機使能】按鈕,若參數(shù)輸入不合理則彈出提示窗口,輸入合理則電機上電,功能實現(xiàn)命令語言如下:SQLCreateTable( \\本站點\IDDevice,\\本站點\實驗時間與日期, "直剪儀實時數(shù)據(jù)")
上述命令語言實現(xiàn)了按照設(shè)定表格模板的格式在數(shù)據(jù)庫中以實驗日期與時間新建數(shù)據(jù)表格,將此命令寫入【電機使能】按鈕的按下時,以實現(xiàn)數(shù)據(jù)庫表格的創(chuàng)建。
點擊【開始】,進入【實時數(shù)據(jù)】界面開始實驗,每10s將數(shù)據(jù)存一次,命令語言如下:
SQLInsert(\\本站點\IDDevice,\\本站點\實驗時間與日期, "直剪儀實時數(shù)據(jù)")
組態(tài)王將記錄體相關(guān)聯(lián)的變量當(dāng)前值插入到SQL數(shù)據(jù)庫表格中,從而生成一條新的記錄,達到將組態(tài)王中的數(shù)據(jù)寫到外部數(shù)據(jù)庫的目的。
實驗時間為0或者點擊【停止】按鈕,進入數(shù)據(jù)是否保存對話框,若刪除當(dāng)前試驗數(shù)據(jù)則命令語言如下:
SQLSelect( \\本站點\IDDevice, "實驗時間匯總", "報表名", "", "" );
SQLDelete(\\本站點\IDDevice, "實驗時間匯總",whereexpr);
點擊【卸壓】按鈕;點擊【歸零】按鈕,并彈出系統(tǒng)回零等待界面,當(dāng)回零動作完成后,該窗口自動關(guān)閉;點擊【電機去使能】按鈕,關(guān)閉電機;若繼續(xù)進行實驗,點擊【加壓】按鈕并按照步驟3-11開展實驗,若結(jié)束實驗則點擊【結(jié)束】按鈕。
進入數(shù)據(jù)輸出開展后期數(shù)據(jù)處理。數(shù)據(jù)輸出分為【數(shù)據(jù)報表】和【曲線輸出】兩個功能,先從“實驗時間選擇”下拉列表框中選擇相應(yīng)試驗數(shù)據(jù)日期,之后根據(jù)需要選擇報表/曲線預(yù)覽、打印、刪除等功能。 下拉列表框日期顯示SQL實現(xiàn)語言如下:
SQLSelect( \\本站點\IDDevice, "實驗時間匯總", "記錄報表名", "", "" );
SQLNext( \\本站點\IDDevice);
當(dāng)需要將數(shù)據(jù)庫中的數(shù)據(jù)調(diào)入組態(tài)王來顯示,將此命令寫入相應(yīng)功能按鈕按下時,并添加查詢下一條記錄的命令,實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的逐條查詢。
4 試驗實例數(shù)據(jù)處理
本文從“實驗時間選擇”下拉列表框中選擇“2015年5月26日11時23分”數(shù)據(jù)為處理實例,依次實現(xiàn)數(shù)據(jù)的報表預(yù)覽、曲線顯示,數(shù)據(jù)處理結(jié)果如圖3所示,并處理計算剪切位移與剪切力關(guān)系,如圖4所示。
圖3(b)所示曲線可依據(jù)需要選擇坐標(biāo)軸,僅選擇一項則默認(rèn)時間為橫軸,若選擇兩項則第一選擇項為橫軸,第二選擇項為縱軸。點擊【選取】按鈕后,曲線顯示控件的橫/縱軸量程將依據(jù)實驗數(shù)據(jù)進行合理調(diào)整。圖4所示曲線給出了剪切位移與剪切力關(guān)系圖,并能根據(jù)需要通過“實驗時間選擇”添加多條曲線實現(xiàn)數(shù)據(jù)對比,實現(xiàn)曲線保存、打印和清空操作。
5 結(jié)論
本文研制的新型直剪設(shè)備結(jié)構(gòu)簡單、對環(huán)境友好,安全性能高,基于組態(tài)王與SQL數(shù)據(jù)庫研發(fā)的試驗操作系統(tǒng),可實現(xiàn)工作狀態(tài)實時監(jiān)控、特征數(shù)據(jù)實時顯示,性能參數(shù)后期處理等功能,操作簡單、計算準(zhǔn)確可靠,具有很好的應(yīng)用價值。
參考文獻:
[1]周楊,李曉瑩.土工合成材料直剪與拉拔聯(lián)合試驗儀的研制[J].路基工程,2006,12(06):82-83. 本文由wWw.DyLw.NeT提供,第一論 文 網(wǎng)專業(yè)教育教學(xué)論文和以及服務(wù),歡迎光臨dYlw.nET
[2]鄧子健,沈躍.瀝青路面層間抗剪強度試驗分析[J].山西交通科技, 2006,181(04):11-14.