基于CS結(jié)構(gòu)的數(shù)據(jù)庫開發(fā)技術(shù)_第1頁
基于CS結(jié)構(gòu)的數(shù)據(jù)庫開發(fā)技術(shù)_第2頁
基于CS結(jié)構(gòu)的數(shù)據(jù)庫開發(fā)技術(shù)_第3頁
基于CS結(jié)構(gòu)的數(shù)據(jù)庫開發(fā)技術(shù)_第4頁
基于CS結(jié)構(gòu)的數(shù)據(jù)庫開發(fā)技術(shù)_第5頁
已閱讀5頁,還剩100頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

SQLServer2005

數(shù)據(jù)庫管理與開發(fā)教程第12章基于C/S結(jié)構(gòu)的數(shù)據(jù)庫開發(fā)技術(shù)本章主要介紹基于C/S結(jié)構(gòu)的數(shù)據(jù)庫開發(fā)技術(shù),內(nèi)容包括C/S結(jié)構(gòu)與B/S結(jié)構(gòu)概述,VB基于C/S架構(gòu)的數(shù)據(jù)庫開發(fā)技術(shù),使用ADO控件操縱SQLServer2005,使用ADO對象操縱SQLServer2005,最后通過一個完整的學(xué)生信息系統(tǒng),使讀者全面了解基于C/S結(jié)構(gòu)的數(shù)據(jù)庫開發(fā)技術(shù),并應(yīng)用到實際工作中。12.1C/S結(jié)構(gòu)與B/S結(jié)構(gòu)12.2VB基于C/S架構(gòu)的數(shù)據(jù)庫開發(fā)技術(shù)12.3使用ADO控件操縱SQLServer200512.4使用ADO對象操作SQLServer200512.5開發(fā)一個學(xué)生信息系統(tǒng)12.1C/S結(jié)構(gòu)與B/S結(jié)構(gòu)

12.1.1認(rèn)識C/S結(jié)構(gòu)圖12.1三層C/S結(jié)構(gòu)圖C/S結(jié)構(gòu)的優(yōu)點如下:(1)能充分發(fā)揮客戶端計算機(jī)的處理能力,很多工作可以在客戶端處理后再提交給服務(wù)器。對應(yīng)的優(yōu)點就是客戶端響應(yīng)速度快。(2)應(yīng)用服務(wù)器運行數(shù)據(jù)負(fù)荷較輕,數(shù)據(jù)安全性較高。其缺點主要有以下幾點:(1)維護(hù)成本高。(2)系統(tǒng)擴(kuò)展性差。(3)客戶端需要安裝專用的客戶端軟件。12.1.2認(rèn)識B/S結(jié)構(gòu)

圖12.2B/S結(jié)構(gòu)12.1.3C/S結(jié)構(gòu)與B/S結(jié)構(gòu)的區(qū)別Client/Server(C/S)結(jié)構(gòu)是建立在局域網(wǎng)的基礎(chǔ)上的,Browser/Server(B/S)結(jié)構(gòu)是建立在廣域網(wǎng)的基礎(chǔ)上的。兩種結(jié)構(gòu)存在下列區(qū)別。(1)硬件環(huán)境不同。(2)對安全要求不同。(3)程序架構(gòu)不同。(4)軟件重用度下同。(5)系統(tǒng)維護(hù)不同。(6)處理問題不同。(7)用戶接口不同。(8)信息流不同。12.2VB基于C/S架構(gòu)的數(shù)據(jù)庫開發(fā)技術(shù)12.2.1了解ODBCODBC(OpenDataBaseConnectivity,開放數(shù)據(jù)庫互連)是Microsoft公司提供的有關(guān)數(shù)據(jù)庫的一個組成部分,它建立一組規(guī)范并提供了數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)API(應(yīng)用程序編程接口)。一個使用ODBC操作數(shù)據(jù)庫的應(yīng)用程序,基本操作都是由ODBC驅(qū)動程序完成,不依賴于DBMS。應(yīng)用程序訪問數(shù)據(jù)庫時,首先要用ODBC管理器注冊一個數(shù)據(jù)源,這個數(shù)據(jù)源包括數(shù)據(jù)庫位置、數(shù)據(jù)庫類型和ODBC驅(qū)動程序等信息,管理器根據(jù)這些信息建立ODBC與數(shù)據(jù)庫的連接。12.2.2配置ODBC數(shù)據(jù)源

圖12.3打開“ODBC數(shù)據(jù)源管理器”圖12.4創(chuàng)建數(shù)據(jù)源圖12.5數(shù)據(jù)源信息設(shè)置圖12.6選擇數(shù)據(jù)庫驗證方式圖12.7選擇數(shù)據(jù)庫12.2.3了解OLEDBOLEDB(OLEDB)是微軟通向不同數(shù)據(jù)源的低級應(yīng)用程序接口。OLEDB不僅包括微軟資助的標(biāo)準(zhǔn)數(shù)據(jù)接口開放數(shù)據(jù)庫連通性(ODBC)的結(jié)構(gòu)化查詢語言(SQL)能力,還具有面向其他非SQL數(shù)據(jù)類型的通路。作為微軟的組件對象模型(COM)的一種設(shè)計,OLEDB是一組讀寫數(shù)據(jù)的方法。OLDDB中的對象主要包括數(shù)據(jù)源對象、階段對象、命令對象和行組對象。使用OLEDB的應(yīng)用程序會用到如下的請求序列:初始化OLE并連接到數(shù)據(jù)源、發(fā)出命令、處理結(jié)果、釋放數(shù)據(jù)源對象并停止初始化OLE。12.2.4ADO開發(fā)技術(shù)ADO(ActiveXDataObject,ActiveX數(shù)據(jù)對象)是一個基于OLEDB之上的對象模型,包含了所有可以被OLEDB標(biāo)準(zhǔn)接口描述的數(shù)據(jù)類型,通過ADO內(nèi)部的屬性和方法提供統(tǒng)一的數(shù)據(jù)訪問接口。ADO對象模型具有可擴(kuò)展性,當(dāng)把數(shù)據(jù)庫上層應(yīng)用程序移植到不同的數(shù)據(jù)庫平臺上時,只需要更換連接數(shù)據(jù)庫的驅(qū)動程序,而不需要對上層程序作任何修改。ADO組件是Microsoft數(shù)據(jù)訪問組件(MDAC)的一部分,可以直接從微軟公司的官方網(wǎng)站下載更新,常見的版本是MDAC2.5和MDAC2.7。最新的ADO.NET版本包含在MDAC2.7組件里,隨著.NET開發(fā)工具一起發(fā)布,包含了對新一代的XML網(wǎng)絡(luò)技術(shù)的全面支持,關(guān)于ADO.NET的相關(guān)內(nèi)容將在第13章中介紹。ADO提供了執(zhí)行以下操作的方式:(1)連接到數(shù)據(jù)源,同時可確定對數(shù)據(jù)源的所有更改是否已成功或沒有發(fā)生。(2)指定訪問數(shù)據(jù)源的命令,同時可帶變量參數(shù),或優(yōu)化執(zhí)行。通常涉及ADO的Command對象。(3)執(zhí)行命令,例如一個Select語句。(4)如果這個命令使數(shù)據(jù)按表中的行的形式返回,則將這些行存儲在易于檢查、操作或更改的緩存中。(5)適當(dāng)情況下,可使用緩存行的更改內(nèi)容來更新數(shù)據(jù)源。(6)提供常規(guī)方法檢測錯誤(通常由建立連接或執(zhí)行命令造成),涉及ADO的Error對象。圖12.8ADO對象模型12.3使用ADO控件操縱SQLServer2005

ADOData控件(如圖12.9所示)是通過MicrosoftActiveX數(shù)據(jù)對象(ADO)來快速建立數(shù)據(jù)源連接的數(shù)據(jù)綁定控件,應(yīng)用程序通過ADO控件與數(shù)據(jù)提供者連接,數(shù)據(jù)提供者可以是任何符合OLEDB規(guī)范的數(shù)據(jù)源。圖12.9ADOData控件ADOData控件通過屬性實現(xiàn)了對數(shù)據(jù)源的連接。創(chuàng)建連接時,可以采用下列連接方式之一:一個字符串,一個OLEDB文件或一個ODBC數(shù)據(jù)源名稱(DSN)。當(dāng)使用DSN時,無須更改控件的任何其他屬性。使用ADOData控件可以達(dá)到以下目的:(1)連接一個本地數(shù)據(jù)庫或遠(yuǎn)程數(shù)據(jù)庫。(2)打開一個指定的數(shù)據(jù)庫表,或定義一個基于SQL的查詢、存儲過程、或該數(shù)據(jù)庫中表視圖的記錄集合。(3)將數(shù)據(jù)字段的數(shù)值傳遞給數(shù)據(jù)綁定控件,并在這些控件中顯示或更改這些數(shù)據(jù)字段的數(shù)值。(4)添加新的記錄,或根據(jù)顯示在數(shù)據(jù)綁定控件中的數(shù)據(jù)的任何更改來更新一個數(shù)據(jù)庫。12.3.1添加ADO控件

圖12.10在main_jcsz_rylb窗體上添加ADO控件12.3.2訪問SQLServer2005數(shù)據(jù)庫1.通過ConnectionString屬性連接數(shù)據(jù)庫圖12.11“屬性頁”對話框圖12.12設(shè)置“連接”選項卡界面2.通過RecordSource屬性連接數(shù)據(jù)表RecordSource屬性確定具體可訪問的數(shù)據(jù),這些數(shù)據(jù)構(gòu)成記錄集對象Recordset。該屬性值可以是數(shù)據(jù)庫中的單個表,也可以是SQL查詢語句。語法:

object.RecordSource[=value]圖12.13記錄源“屬性頁”對話框

12.3.3使用數(shù)據(jù)綁定控件瀏覽數(shù)據(jù)

數(shù)據(jù)綁定是控件顯示記錄集中記錄的一種方式,例如DataGrid、MSHFlexGrid等網(wǎng)格控件通常都是通過數(shù)據(jù)綁定的方式顯示數(shù)據(jù)。圖12.14選擇需要綁定的ADO控件12.3.4添加、修改和刪除數(shù)據(jù)記錄的添加、修改和刪除功能分別由ADO控件的Recordset對象的AddNew方法、Update方法、Delete方法實現(xiàn)。1.AddNew方法

功能:為可更新的Recordset對象創(chuàng)建新記錄。語法:

recordset.AddNewFieldList,Values圖12.15人員類別設(shè)置窗體圖12.16打開人員類別表2.Update方法保存對Recordset對象的當(dāng)前記錄所做的所有更改。語法:recordset.UpdateFields,Values圖12.17圖書名稱修改窗體圖12.18修改后的“表tb_book”3.Delete方法功能:刪除當(dāng)前記錄或記錄組。語法:

recordset.DeleteAffectRecords12.4使用ADO對象操作SQLServer2005

12.4.1訪問SQLServer2005圖12.19引用ADO對象

12.4.2使用數(shù)據(jù)綁定控件瀏覽數(shù)據(jù)數(shù)據(jù)綁定的方法與在使用ADO控件時的方法類似,都是通過設(shè)置控件的DataSource屬性實現(xiàn)的。12.4.3添加、修改和刪除數(shù)據(jù)

使用ADO時,通過Recordset對象可對幾乎所有的數(shù)據(jù)進(jìn)行操作。下面利用Recordset對象的AddNew和Update方法向數(shù)據(jù)庫中添加數(shù)據(jù),但Recordset對象必須是可更新的。下面講解Recordset對象的AddNew和Update方法給數(shù)據(jù)表增加記錄。AddNew方法的語法如下。Recordset.AddNewFieldList,Values圖12.20Recordset對象操作數(shù)據(jù)庫中數(shù)據(jù)12.4.4訪問視圖視圖是一種邏輯對象,是一種虛擬表。在視圖中被查詢的表稱為視圖的基表。大多數(shù)的SQL語句都可以用在視圖的創(chuàng)建中。下面對創(chuàng)建視圖以及調(diào)用視圖的方法進(jìn)行介紹。(1)創(chuàng)建視圖

使用CREATEVIEW語句創(chuàng)建視圖。CREATEVIEW的語法格式如下:CREATEVIEWview_name[(column_name[,column_name]…)]ASSELECT_statement(2)刪除視圖使用DROPVIEW語句刪除視圖DROPVIEW的語法格式如下:DROPVIEWview_name(3)查詢視圖記錄

對視圖中的記錄進(jìn)行查詢的方法與對實表查詢的方法相同12.4.5訪問觸發(fā)器和存儲過程存儲過程是在數(shù)據(jù)庫服務(wù)器端執(zhí)行的一組SQL語句的集合,經(jīng)編譯后存放在數(shù)據(jù)庫服務(wù)器中。觸發(fā)器是一種特殊類型的存儲過程,它不同于普通的存儲過程。觸發(fā)器主要是通過時間進(jìn)行觸發(fā)而被執(zhí)行的。1.觸發(fā)器

(1)創(chuàng)建觸發(fā)器利用CREATETRIGGER語句可以創(chuàng)建觸發(fā)器。創(chuàng)建觸發(fā)器的語法結(jié)構(gòu)如下:CREATETRIGGERtrigger_nameON{table|view}[WITHENCRYPTION]{FOR|AFTER|INSTEADOF}{[DELETE][,][INSERT][,][UPDATE]}ASSql_statements(2)刪除觸發(fā)器

利用DROPTRIGGER可以刪除觸發(fā)器。刪除觸發(fā)器的語法格式如下:DROPTRIGGER{trigger}[,...n](3)觸發(fā)器的觸發(fā)當(dāng)更新數(shù)據(jù)時觸發(fā)前面創(chuàng)建的觸發(fā)器TRG_Edit,代碼如下:PrivateSubCmd_Update_Click()'更新數(shù)據(jù)操作OnErrorGoToxIfText1.Text=""OrText2.Text=""ThenMsgBox"輸入的員工信息不能為空",48,"提示信息"ElseCon2.ConnectionString="Provider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=sa;InitialCatalog=db_Data"Con2.OpenSetRs=Con2.Execute("UPDATEtb_employeeSET員工姓名='"+Text2.Text+"'where員工姓名='"+Text1.Text+"'")

Con2.CloseMsgBox"數(shù)據(jù)更新成功完成",64,"提示信息"EndIfExitSubx:MsgBox"觸發(fā)器還沒有創(chuàng)建,請先創(chuàng)建觸發(fā)器",48,"提示信息"EndSub2.存儲過程

(1)創(chuàng)建存儲過程創(chuàng)建存儲過程的語法格式如下:CREATEPROC[EDURE]Procedure_name[;number][@Parameterdata_type[VARYING][=default][OUTPUT]][,……n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}][FORREPLICATION]ASsql_statement[…n](2)刪除存儲過程

刪除存儲過程的語法格式如下:DROPPROCEDURE<Procedurename>[…,<lastProcedurename>](3)執(zhí)行存儲過程執(zhí)行存儲過程的語法格式如下:EXEC[UTE]Procedurename12.5開發(fā)一個學(xué)生信息系統(tǒng)

12.5.1需求分析12.5.2系統(tǒng)總體框架設(shè)計1.系統(tǒng)目標(biāo)(1)要求有良好的人機(jī)界面,以便操作人員的使用;(2)要求有較好的權(quán)限管理;(3)能夠?qū)崿F(xiàn)數(shù)據(jù)信息的添加、修改、查詢和刪除等操作;(4)操作方便,數(shù)據(jù)穩(wěn)定性好;(5)系統(tǒng)要求有安全性、協(xié)調(diào)性和完整性。

(1)實現(xiàn)學(xué)生信息的添加、修改和查詢;(2)實現(xiàn)班級信息的添加、修改和查詢;(3)基本課程信息的添加、修改和查詢;(4)成績信息的添加、修改和查詢;(5)學(xué)生成績信息的統(tǒng)計。2.系統(tǒng)功能結(jié)構(gòu)設(shè)計

班級信息查詢圖12.21學(xué)生信息管理系統(tǒng)功能結(jié)構(gòu)圖12.5.3數(shù)據(jù)庫設(shè)計1.?dāng)?shù)據(jù)庫的分析為了實現(xiàn)數(shù)據(jù)的安全與穩(wěn)定,學(xué)生信息管理系統(tǒng)使用了當(dāng)前比較流行的SQLServer2005數(shù)據(jù)庫。

MicrosoftSQLServer2005是微軟在2005年12月推出的一款擁有多種服務(wù)的數(shù)據(jù)平臺。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論