版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第5章 Web數(shù)據(jù)庫程序設計,1 Web數(shù)據(jù)庫訪問技術 2 ODBC接口 3 數(shù)據(jù)庫語言SQL 4 使用ADO訪問數(shù)據(jù)庫 5 用Connection對象連接數(shù)據(jù)庫 6 用RecordSet對象控制數(shù)據(jù) 7 用Command對象執(zhí)行數(shù)據(jù)庫操作 8 程序設計舉例,數(shù)據(jù)庫應用系統(tǒng)在現(xiàn)有計算機軟件中占有很大的比例 本章將著重介紹一種有效的Web數(shù)據(jù)庫訪問方案,即利用ASP服務器端的組件ActiveX Data Objects(ADO)實現(xiàn)對數(shù)據(jù)庫的操作,5.1 Web數(shù)據(jù)庫訪問技術,5.1.1 概述 Web數(shù)據(jù)庫系統(tǒng)不能僅依賴某個DBMS來實現(xiàn)整個應用系統(tǒng),它是通過其他Web應用程序,用標準的HTML
2、語言及其某些特定的擴展功能開發(fā)的、以特殊形式訪問數(shù)據(jù)庫的應用程序系統(tǒng) Web應用系統(tǒng)一般采用Browser/WebServer/ApplicationServer模式實現(xiàn) Web訪問數(shù)據(jù)庫的關鍵是與數(shù)據(jù)庫服務器間的接口,5.1.2 CGI,CGI(Common Gateway Interface,公關網(wǎng)關接口)是一種接口標準,它使靜態(tài)的Web頁變?yōu)榻换ナ降拿襟w成為可能,圖6-1 通過CGI訪問Web數(shù)據(jù)庫模型,5.1.3 ODBC,ODBC(Open Database Connectivity,開放式數(shù)據(jù)庫連接)是一個數(shù)據(jù)庫編程接口,由微軟公司建議并開發(fā),圖6-2 ODBC應用系統(tǒng)模型,5.1
3、.4 JDBC,JDBC是較早的Web開發(fā)平臺,在Web應用中,嵌于網(wǎng)頁(HTML文件)中的Java applets利用JDBC來訪問數(shù)據(jù)庫,圖6-3 采用JDBC技術實現(xiàn)Web數(shù)據(jù)庫訪問模型,5.1.5 ADO,ADO(ActiveX Data Objects)是微軟公司W(wǎng)eb服務器端的內(nèi)置組件,ADO允許程序員在編寫程序時,通過一個OLEDB(數(shù)據(jù)庫對象鏈接嵌入技術)提供者,如Microsoft SQL Server,Microsoft Access系統(tǒng)等,訪問并操縱數(shù)據(jù)庫服務器中的數(shù)據(jù),圖6-4 采用ADO技術實現(xiàn)Web數(shù)據(jù)庫訪問模型,5.2 ODBC接口,5.2.1 ODBC接口概述
4、ODBC是微軟公司建議并開發(fā)的數(shù)據(jù)庫API標準,ODBC為異種數(shù)據(jù)庫提供了統(tǒng)一的訪問接口,它使應用程序能用結構化的查詢語言SQL訪問數(shù)據(jù)庫,從而對操作數(shù)據(jù)庫的應用程序屏蔽了不同數(shù)據(jù)庫管理系統(tǒng)的訪問差異,也使數(shù)據(jù)庫系統(tǒng)的開發(fā)不僅僅局限于某個DBMS,ODBC主要定義如下5方面的內(nèi)容: ODBC函數(shù)庫,它為應用程序提供連接DBMS、執(zhí)行SQL語句、提取訪問結果的程序接口 SQL語法,它遵循X/Open and SQL Access Group Call Level Interface Specification標準 錯誤代碼 連接、登錄DBMS 數(shù)據(jù)類型,5.2.2 ODBC的應用,一個ODBC應
5、用的建立應涵蓋以下主要內(nèi)容: 建立需要操作數(shù)據(jù)庫的應用程序,該程序通過調(diào)用ODBC函數(shù)提交SQL語句 提供運行環(huán)境,該環(huán)境應包含數(shù)據(jù)庫驅(qū)動程序,它負責處理ODBC函數(shù)調(diào)用,向數(shù)據(jù)源提交SQL請求,向應用程序返回結果,必要時將SQL語法翻譯成符合DBMS語法規(guī)定的格式 具有由用戶數(shù)據(jù)庫、DBMS等構成的可供應用程序訪問的數(shù)據(jù)源,通過ODBC訪問數(shù)據(jù)庫的基本步驟如下: 創(chuàng)立并配置數(shù)據(jù)源; 建立一個與數(shù)據(jù)源的對話連接; 向數(shù)據(jù)源發(fā)出SQL請求; 定義一個緩沖區(qū)和數(shù)據(jù)格式用于存儲訪問結果; 提取結果; 處理各種錯誤; 向用戶報告結果; 關閉與數(shù)據(jù)源的連接,5.2.3 創(chuàng)建并配置數(shù)據(jù)源,用戶可通過如下兩
6、種方式創(chuàng)建或配置數(shù)據(jù)源:ODBC數(shù)據(jù)源管理程序或系統(tǒng)函數(shù)調(diào)用 配置一個Access數(shù)據(jù)源的過程如下: 在Windows系統(tǒng)下進入控制面板,打開ODBC數(shù)據(jù)源,若是Windows 2000平臺,則打開管理程序下的數(shù)據(jù)源ODBC,屏幕上將出現(xiàn)如圖6-5所示的“ODBC數(shù)據(jù)源管理器”對話框,圖6-5 “ODBC數(shù)據(jù)源管理器”對話框,選擇所使用的數(shù)據(jù)庫驅(qū)動程序,如選擇Microsoft Access Driver (*.mdb),單擊“完成”按鈕,出現(xiàn)如圖6-7所示的對話框,圖6-7 “ODBC Microsoft Access安裝”對話框,選擇“系統(tǒng)DSN”標簽,即選擇“系統(tǒng)數(shù)據(jù)源”。要使系統(tǒng)上的所
7、有應用程序都可以使用它,必須選用系統(tǒng)DSN,這是建立Web站點的需要。 單擊“添加”按鈕,進入“創(chuàng)建新數(shù)據(jù)源”對話框,如圖6-6所示,圖6-6 “創(chuàng)建新數(shù)據(jù)源”對話框,在“數(shù)據(jù)源名”輸入框中鍵入數(shù)據(jù)源名,單擊“選擇”按鈕為該數(shù)據(jù)源指定一個已創(chuàng)建好的Access數(shù)據(jù)庫(*.mdb),該數(shù)據(jù)庫應該是在Web應用程序中即將訪問的數(shù)據(jù)庫。單擊“確定”按鈕,回到圖6-6“創(chuàng)建新數(shù)據(jù)源”對話框。單擊“確定”按鈕直到關閉ODBC數(shù)據(jù)管理器,此時完成一個數(shù)據(jù)源的建立過程。若要修改該數(shù)據(jù)源的配置,可在圖6-5“ODBC數(shù)據(jù)源管理器”對話框中選定要更改的數(shù)據(jù)源,再單擊“配置”按鈕,5.3 數(shù)據(jù)庫語言SQL,5.3
8、.1 SQL概述 SQL(Structured Query Language,結構化查詢語言)是一個被廣泛采用、適用于關系數(shù)據(jù)庫訪問的數(shù)據(jù)庫語言工業(yè)標準。它包括數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)查詢和數(shù)據(jù)控制等語句標準。 SQL具有以下4部分功能: 數(shù)據(jù)定義用于定義數(shù)據(jù)模式。 數(shù)據(jù)查詢用于從數(shù)據(jù)庫中檢索數(shù)據(jù)。 數(shù)據(jù)操縱用于對數(shù)據(jù)庫數(shù)據(jù)進行增加、刪除、 修改等操作。 數(shù)據(jù)控制用于控制數(shù)據(jù)庫用戶的訪問權限,5.3.2 主要的SQL語句,查詢語句SELECT SELECT是SQL的核心語句,它功能強大,和各類SQL子句結合可完成多種復雜的查詢操作。其語法格式如下: SELECT ALL | DISTINCT
9、fields_list INTO new_tablename FROM table_names WHERE GROUP BY HAVING ORDER BY,插入數(shù)據(jù)語句INSERT INSERT可添加一個或多個記錄到一個表中。INSERT有兩種語法形式: INSERT INTO target IN externaldatabase (fields_list) DEFAULT VALUES|VALUES(DEFAULT|expression_list) INSERT INTO target IN externaldatabase fields_list SELECT|EXECUTE 刪除數(shù)據(jù)語
10、句DELETE DELETE用于從一個或多個表中刪除記錄。其語法格式如下: DELETE FROM table_names WHERE,更新數(shù)據(jù)語句UPDATE UPDATE語句用于更新表中的記錄。其語法格式如下: UPDATE table_name SET Field_1=expression_1,Field_2=expression_2, FROM table1_name|view1_name,table2_name|view2_name, WHERE,5.4 使用ADO訪問數(shù)據(jù)庫,5.4.1 概述 ADO(ActiveX Data Objects,ActiveX數(shù)據(jù)對象)技術是一種良好的
11、Web數(shù)據(jù)庫訪問解決方案 ADO是一個ASP內(nèi)置的服務器組件,它是一座連接Web應用程序和OLEDB的橋梁 ADO幾乎兼容所有的數(shù)據(jù)庫系統(tǒng) ADO支持多種程序設計語言,5.4.2 ADO的對象類和對象模型,ADO技術是通過ADO對象的屬性、方法來完成相應的數(shù)據(jù)庫訪問的。ADO共有以下7種獨立對象類 Connection連接對象,表示與數(shù)據(jù)源的連接關系 Command命令對象,用于定義一些特定的命令語法,以執(zhí)行相應的動作 RecordSet記錄集對象,用于表示來自數(shù)據(jù)庫表或命令執(zhí)行結果的記錄 Property屬性對象,用于描述對象的屬性,每個ADO對象都有一組惟一的屬性來描述或控制對象的行為,E
12、rror錯誤對象,用于描述Connection對象在連接數(shù)據(jù)庫時發(fā)生的錯誤 Field域(字段)對象,用來表示RecordSet對象的字段,一個記錄行包含一個或多個域(字段) Parameter參數(shù)對象,用來描述Command對象的命令參數(shù),是命令所需要的變量部分,圖6-8 ADO對象模型,5.4.3 ADO樣例,【例】 網(wǎng)絡導航 Easy 6-1.asp 6-2.asp 6-3.asp 6-4.asp,5.5 ADO Connection對象,1、建立和關閉connection對象實例: 2、使用connection對象連接數(shù)據(jù)庫: set db=Server.CreateObject(AD
13、ODB.Connection) db.Open DBQ=“,3、Connection對象的屬性,Commandtimeout:設置connection對象的execute方法的執(zhí)行時間。默認30秒,0值為無限期等待,直到執(zhí)行結束。 ConnectionString:指定Connection對象的數(shù)據(jù)庫鏈接信息。 打開數(shù)據(jù)庫除了open 方法,可以如下: ,ConnectionTimeout:指定open方法與數(shù)據(jù)庫鏈接的的執(zhí)行截至時間,默認30秒。 DefaultDatabase:在多個數(shù)據(jù)庫中指定默認者。 Mode:設置連接數(shù)據(jù)庫的權限。 0:為定義 1:只讀 2:只寫 3:可讀可寫,3、C
14、onnection對象的屬性,Version:顯示ADO對象的版本信息 ,3、Connection對象的屬性,4、Connection對象的方法,Open:建立和數(shù)據(jù)庫的連接 Open方法的參數(shù): Dsn:odbc數(shù)據(jù)源名稱 User:數(shù)據(jù)庫登陸賬號 Password:數(shù)據(jù)庫登陸密碼 Driver:數(shù)據(jù)庫類型 Dbq:數(shù)據(jù)庫物理路徑,Close:關閉Connection對象與數(shù)據(jù)庫的連接 Execute:執(zhí)行數(shù)據(jù)庫查詢、SQL語句(查詢、添加、刪除、更新等) 格式: set Recordset對象=Connection對象.Execute(SQL字符串) 或 Connection對象. Exe
15、cute(SQL字符串),4、Connection對象的方法,BeginTrans :開始事務的處理 Connection對象.BeginTrans CommitTrans:提交事務處理結果 Connection對象.CommitTrans (執(zhí)行該方法后,才真正更新數(shù)據(jù)庫) RollbackTrans:取消事務處理結果 Connection對象.RollbackTrans 以上三種方法結合起來將增加數(shù)據(jù)庫程序的可靠性。,4、Connection對象的方法,5、數(shù)據(jù)庫查詢操作,方法一: set rs=server.createobject(ADODB.Recordset) strquery=s
16、elect * from person rs.open strquery,db 方法二: ,5.6 ADO RecordSet對象,用來操作數(shù)據(jù)庫的記錄集(是表記錄的集合,用來對單個記錄操作) 1、創(chuàng)建Recordset對象(5種方法:RecordSet.asp) 或 先和數(shù)據(jù)庫相連(顯示建立Connection對象),2、存取數(shù)據(jù)庫,讀取數(shù)據(jù)記錄: 利用RecordSet對象讀取記錄既是對字段的訪問。對于一個RecordSet對象,字段名和字段的順序號均可標識一個字段。 移動記錄指針的方法: rs.方法 Movefirst Movenext Moveprevious Movelast mov
17、e 添加數(shù)據(jù)記錄:,3、Recordset對象的屬性,返回記錄集,了解當前記錄集的特征,得知記錄數(shù),設置記錄頁的大小,得到或設置當前指針的絕對位置。 對象屬性根據(jù)功能可分為如下幾組: 第一組屬性限定記錄集的內(nèi)容和性質(zhì),在打開記錄前設置。 Source:設置數(shù)據(jù)庫查詢信息 Activeconnection:設置數(shù)據(jù)庫連接信息 cursorType:設置記錄集指針類型 Locktype: 設置記錄集的鎖定類型 MaxRecors:控制從服務器上得到的最大記錄數(shù) cursorLocation:設置記錄集在客戶端還是在服務器端處理 Filter:設置要顯示的內(nèi)容,第二組屬性是關于記錄的,在打開記錄集后
18、讀取。 Recordcount:返回記錄總數(shù) Var=rescordset.recordcount Bof:判斷當前記錄指針是否在記錄的開頭 Eof:判斷當前記錄指針是否在記錄的尾部,3、Recordset對象的屬性,第三組屬性完成數(shù)據(jù)分頁顯示的功能,在打開記錄集后再設。 Pagesize:設置數(shù)據(jù)分頁顯示時每頁的記錄數(shù)。 Pagecount:設置數(shù)據(jù)分頁顯示時數(shù)據(jù)頁的總數(shù)。 Absolutepage:設置當前指針位于哪頁。 Absoluteposition:設置當前指針所在的記錄行的絕對值。,3、Recordset對象的屬性,4、Recordset對象的方法,Open Close Reque
19、ry Movefirst Moveprovious Movenext Movelast Move number,start Addnew和Delete,Update 用法: 或 rs.update fields,values Cancelupdate Getrows(rows,start,fields) Resync:客戶端和服務器端,舉例:,9-1:數(shù)據(jù)庫基本操作 9-2:利用connection的execute方法維護數(shù)據(jù)庫 9-7:利用recordset對象查詢記錄 9-8:利用recordset對象分頁顯示記錄 9-9:利用recordset對象更新記錄 9-10:利用recordse
20、t對象更新記錄,5.7 用Command對象執(zhí)行數(shù)據(jù)庫操作,5.7.1 Command對象的常用屬性和方法 執(zhí)行SQL語句可以用打開的Connection對象,也可以用ADO的Command(命令)對象達到同樣的目的。 Command對象的常用屬性和方法如下: ActiveConnection屬性指定與Command對象關聯(lián)的已打開 的連接 對象。 Name屬性指定Command對象的名字。 CommandText屬性定義一個可執(zhí)行的命令串。 CommandType屬性指定命令的類型。 Execute方法執(zhí)行命令,5.7.2 用Command對象執(zhí)行SQL語句,【例】 用Command對象的E
21、xecute方法從sales表中檢索出所有記錄。源程序如下: ,5.7.3 用Command對象調(diào)用存儲過程,在Web數(shù)據(jù)庫程序設計中使用SQL存儲過程有下列好處: 執(zhí)行SQL存儲過程比執(zhí)行SQL命令快得多。當一個SQL語句包含在存儲過程中時,服務器不必每次執(zhí)行它時都要分析和編譯它。 在多個網(wǎng)頁中可以調(diào)用同一個存儲過程,使站點易于維護。 一個存儲過程可以包含多個SQL語句,這意味著可用存儲過程建立復雜的查詢。 存儲過程可以接收和返回參數(shù),這是實現(xiàn)復雜數(shù)據(jù)庫訪問功能的必要基礎。,存儲過程的調(diào)用形式 存儲過程的調(diào)用也是一個Command對象的執(zhí)行過程 【例】 實現(xiàn)對存儲過程HitCount的調(diào)用。源程序如下: ,用Parameter對象實現(xiàn)存儲過程的參數(shù)傳遞 Parameter對象代表基于參數(shù)化查詢或與存儲過程的Command對象相關聯(lián)的輸入、輸出參數(shù)及存儲過程的返回值。用C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年及未來5年市場數(shù)據(jù)中國磷復肥行業(yè)市場前景預測及投資方向研究報告
- 2026年大連職業(yè)技術學院單招綜合素質(zhì)筆試備考題庫帶答案解析
- 外墻保溫施工保密合同協(xié)議2025年
- 外包服務合同(2025年服務期限)
- 2026年河南檢察職業(yè)學院高職單招職業(yè)適應性考試備考題庫有答案解析
- 投資入股合作協(xié)議2025年條款
- 投資合作協(xié)議(2025年風險投資)
- 2026年哈密職業(yè)技術學院單招綜合素質(zhì)考試模擬試題帶答案解析
- 2026年北京社會管理職業(yè)學院單招綜合素質(zhì)考試備考試題帶答案解析
- 碳匯項目咨詢服務協(xié)議2025年爭議解決方式
- 上海市楊浦區(qū)2024-2025學年六年級上學期期末考試數(shù)學試卷(解析版)
- 2025年檔案管理員試題及答案
- 2025年度大蒜品牌授權與合作推廣合同
- “正則動量”解決帶電粒子在磁場中的運動問題
- 2025屆廣東華附 省實 廣雅 深中四校2024-2025學年高三上學期期末聯(lián)考英語試題(無答案)
- HG∕T 4561-2013 不飽和聚酯膩子
- (正式版)QC∕T 625-2024 汽車用涂鍍層和化學處理層
- QBT 2358-1998 塑料薄膜包裝袋 熱合強度試驗方法
- 村務監(jiān)督業(yè)務培訓課件
- 食品包裝材料及容器
- 滅菌包裝袋內(nèi)部資料課件
評論
0/150
提交評論