數(shù)據(jù)庫開發(fā)與管理09-訪問技術(shù)與數(shù)據(jù)交換_第1頁
數(shù)據(jù)庫開發(fā)與管理09-訪問技術(shù)與數(shù)據(jù)交換_第2頁
數(shù)據(jù)庫開發(fā)與管理09-訪問技術(shù)與數(shù)據(jù)交換_第3頁
數(shù)據(jù)庫開發(fā)與管理09-訪問技術(shù)與數(shù)據(jù)交換_第4頁
數(shù)據(jù)庫開發(fā)與管理09-訪問技術(shù)與數(shù)據(jù)交換_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

SQLServer數(shù)據(jù)庫開發(fā)與管理9.數(shù)據(jù)庫訪問技術(shù)、Web應(yīng)用與DTS9.數(shù)據(jù)庫訪問技術(shù)、Web應(yīng)用、DTS目前數(shù)據(jù)庫應(yīng)用的基本形式;數(shù)據(jù)庫訪問技術(shù)概述;ODBC的概念和應(yīng)用步驟;ADO和ADO.NET;數(shù)據(jù)轉(zhuǎn)換與DTS。1.數(shù)據(jù)庫應(yīng)用模式(1):嵌入式SQL數(shù)據(jù)庫在信息管理與計(jì)算機(jī)應(yīng)用中處于中心地位。早期的數(shù)據(jù)庫是集中管理,集中使用。隨著網(wǎng)絡(luò)的普及,數(shù)據(jù)向集中管理、分散使用;分散管理、分散使用發(fā)展。在早期的應(yīng)用開發(fā)中,開發(fā)工具與數(shù)據(jù)庫是緊密集成的。由于關(guān)系數(shù)據(jù)庫的發(fā)展,SQL語言得到了普遍應(yīng)用。但由于信息系統(tǒng)基本上是用高級(jí)語言開發(fā)的,高級(jí)語言對(duì)SQL的支持比較缺乏,因此,嵌入式SQL的應(yīng)用方式得到廣泛應(yīng)用。即在高級(jí)語言中嵌入SQL語言解決數(shù)據(jù)庫處理的問題,并利用高級(jí)語言的數(shù)據(jù)運(yùn)算及輸入輸出功能。嵌入式SQL先將SQL編譯成宿主語言調(diào)用的函數(shù),然后插入宿主程序中。這使得數(shù)據(jù)庫處理的程序只能在該程序中使用,可移植性很差;嵌入式SQL對(duì)于數(shù)據(jù)庫的操作過程固定,只能按照宿主語言規(guī)定的方式進(jìn)行,不能充分發(fā)揮SQL語言的優(yōu)點(diǎn);一般而言,嵌入式SQL只能操作特定的數(shù)據(jù)庫,對(duì)于異構(gòu)數(shù)據(jù)庫不能很好的處理,使應(yīng)用受到很大的限制。嵌入式SQL語法比較復(fù)雜,難于學(xué)習(xí)。嵌入式SQL的不足:2.數(shù)據(jù)庫應(yīng)用模式(2):C/S與B/S隨著網(wǎng)絡(luò)技術(shù)的普及,通過網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)庫的方式變的格外迫切。在經(jīng)過早期的文件服務(wù)器模式應(yīng)用后,C/S(客戶機(jī)/服務(wù)器)模式得到了廣泛應(yīng)用。由于C/S模式對(duì)客戶端的要求較高,“瘦客戶機(jī)”型的B/S模式得到了飛速發(fā)展。C/S或B/S模式要求應(yīng)用程序能夠很方便的訪問網(wǎng)絡(luò)上的各種數(shù)據(jù)庫。對(duì)于數(shù)據(jù)庫的訪問應(yīng)該不受具體的DBMS和開發(fā)語言的限制。從而提出了“數(shù)據(jù)庫訪問中間件”的要求。在C/S系統(tǒng)中必須廣泛使用中間件技術(shù),以隱藏各種復(fù)雜性,屏蔽各種系統(tǒng)之間的差異。3.中間件定義:中間件(middleware)是分布式環(huán)境中保證操作系統(tǒng)、通信協(xié)議、數(shù)據(jù)庫等之間進(jìn)行對(duì)話、互操作的軟件系統(tǒng)。中間件的作用是保證網(wǎng)絡(luò)中各部件(軟件和硬件)之間透明地連接,即隱藏網(wǎng)絡(luò)部件的異構(gòu)性,尤其保證不同網(wǎng)絡(luò)、不同DBMS和某些訪問語言的透明性,即下面三個(gè)透明性。網(wǎng)絡(luò)透明性:能支持所有類型的網(wǎng)絡(luò)。服務(wù)器透明性:不管服務(wù)器上的DBMS是何種型號(hào)(DB2、ORACLE、SYBASE等),一個(gè)好的中間件都能通過標(biāo)準(zhǔn)的SQL語言與不同DBMS上的SQL語言連接起來。語言透明性:客戶機(jī)可用任何開發(fā)語言進(jìn)行發(fā)送請(qǐng)求和接受回答,被調(diào)用的功能應(yīng)該像語言那樣也是獨(dú)立的。4.B/S模式與網(wǎng)頁設(shè)計(jì)(1)在B/S模式中,作為客戶端的程序是瀏覽器。用戶通過瀏覽器來訪問服務(wù)器,與服務(wù)器進(jìn)行交互。目前最為流行的網(wǎng)絡(luò)訪問方式是WWW服務(wù)。其基本的工作模式如下圖。在WEB服務(wù)器上,將對(duì)用戶的訪問請(qǐng)求的回復(fù)組織成網(wǎng)頁,然后發(fā)回到客戶端。由瀏覽器顯示。同時(shí),也通過瀏覽器與用戶進(jìn)行交互。由于客戶端只有瀏覽器作為唯一的程序,所以無須維護(hù)。網(wǎng)頁設(shè)計(jì)-靜態(tài)網(wǎng)頁設(shè)計(jì)(2)在WWW服務(wù)中,信息被組織在各獨(dú)立的網(wǎng)站上。當(dāng)用戶訪問特定的網(wǎng)站上的特定網(wǎng)頁時(shí),保存在網(wǎng)站上的網(wǎng)頁就發(fā)往提出訪問的用戶。網(wǎng)頁是由基于HTML語言(包括腳本語言)編制的代碼。在WEB服務(wù)器上,網(wǎng)頁分為靜態(tài)網(wǎng)頁和動(dòng)態(tài)網(wǎng)頁。靜態(tài)網(wǎng)頁就是用HTML語言將信息組成確定的網(wǎng)頁文件保存在網(wǎng)站上(htm或html文件)。用戶每次的訪問看到的都是相同的內(nèi)容。網(wǎng)頁設(shè)計(jì)-靜態(tài)網(wǎng)頁設(shè)計(jì)(3)靜態(tài)網(wǎng)頁的工作原理:(1)設(shè)計(jì)者首先將HTM文件保存到WEB服務(wù)器;(2)有用戶在瀏覽器中輸入U(xiǎn)RL及網(wǎng)頁請(qǐng)求,從瀏覽器傳遞到服務(wù)器;(3)WEB服務(wù)器確定網(wǎng)頁的位置,將其轉(zhuǎn)化HTML流,傳回到瀏覽器;(4)瀏覽器處理HTML并顯示該頁。網(wǎng)頁設(shè)計(jì)-動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)(4)動(dòng)態(tài)網(wǎng)頁有兩種不同的工作原理。1、客戶端動(dòng)態(tài)網(wǎng)頁。在這種模型中,附加到瀏覽器上的插件完成創(chuàng)建動(dòng)態(tài)網(wǎng)頁的全部工作。通常從服務(wù)器傳回的網(wǎng)頁包含要處理的指令代碼,瀏覽器利用這些指令代碼生成HTML頁,然后顯示,也就是說,頁面根據(jù)請(qǐng)求動(dòng)態(tài)生成。工作過程是:(1)設(shè)計(jì)者將HTM和指令文件保存到WEB服務(wù)器;(2)用戶網(wǎng)頁請(qǐng)求,從瀏覽器傳遞到服務(wù)器;(3)WEB服務(wù)器確定位置,將HTML和指令流傳回;(4)瀏覽器處理將指令轉(zhuǎn)化為HTML并顯示該頁。網(wǎng)頁設(shè)計(jì)-動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)(5)2、服務(wù)器端動(dòng)態(tài)網(wǎng)頁。在這種模型中,網(wǎng)頁包含有HTML和需要處理的指令,保存在WEB服務(wù)器中。當(dāng)有訪問請(qǐng)求時(shí),WEB服務(wù)器首先處理指令,生成HTML,然后傳回瀏覽器。及網(wǎng)頁是在服務(wù)器端動(dòng)態(tài)生成的。工作過程是:(1)設(shè)計(jì)者將HTM和指令文件保存到WEB服務(wù)器;(2)用戶網(wǎng)頁訪問請(qǐng)求;(3)WEB服務(wù)器確定文件位置,處理生成網(wǎng)頁;(4)將網(wǎng)頁傳回;(5)瀏覽器顯示該頁。不同網(wǎng)頁技術(shù)的特點(diǎn)除非修改網(wǎng)頁,否則靜態(tài)網(wǎng)頁的內(nèi)容是固定不變的。靜態(tài)網(wǎng)頁傳送快,適合固定的內(nèi)容。客戶端動(dòng)態(tài)網(wǎng)頁是根據(jù)指令形成的,具有某種可變特性。但是這要求客戶端有處理指令的模塊,另外由于客戶環(huán)境的不同,不能保證指令能否順利執(zhí)行以及保證效果,另外對(duì)于安全性也沒有保證。服務(wù)器端動(dòng)態(tài)網(wǎng)頁在服務(wù)器上根據(jù)指令生成網(wǎng)頁。具有最大的靈活性??蛻舳丝床坏皆创a,具有很高的安全性。并且能夠保證網(wǎng)頁在幾乎所有的瀏覽器上都有相同的效果。5.主要?jiǎng)討B(tài)網(wǎng)頁設(shè)計(jì)技術(shù)(1)客戶端動(dòng)態(tài)網(wǎng)頁主要由腳本語言和組件等實(shí)現(xiàn)??蛻舳四J(rèn)的腳本語言是JavaScript。另外還可以使用VBScript、ActiveX組件、JAVA小程序等。不能保證每一個(gè)瀏覽器支持所有這些語言。支持服務(wù)器端動(dòng)態(tài)網(wǎng)頁的技術(shù)每一個(gè)提供服務(wù)器端動(dòng)態(tài)網(wǎng)頁服務(wù)技術(shù)的都依賴于在WEB服務(wù)器上添加的模塊附件。目前主要技術(shù)有:CGI(CommonGatewayInterface公共網(wǎng)關(guān)接口)、ASP、JSP、PHP、ASP.NET等。5.主要?jiǎng)討B(tài)網(wǎng)頁設(shè)計(jì)技術(shù)(2)CGI是最早的服務(wù)器端動(dòng)態(tài)網(wǎng)頁技術(shù),幾乎所有的WEB服務(wù)器都支持該技術(shù)。比較復(fù)雜。ASP(ActiveServerPages),由微軟開發(fā)。通常ASP依賴腳本語言創(chuàng)建動(dòng)態(tài)WEB。ASP是附加在WEB服務(wù)器上的模塊(ASP.DLL)。JSP,允許將HTML或XML標(biāo)記與JAVA代碼相結(jié)合動(dòng)態(tài)生成WEB頁。主要優(yōu)點(diǎn)之一是代碼在不同服務(wù)器間兼容,運(yùn)行速度比ASP快。JAVA程序員很容易學(xué)習(xí)。PHP起源于PersonalHomePages,現(xiàn)在指HyperTextPreprocessor,是用于創(chuàng)建動(dòng)態(tài)WEB頁的另外一種腳本語言。它是開源和跨平臺(tái)的。缺點(diǎn)是用戶需要單獨(dú)下載PHP并安裝。語法類似于C和Perl。5.主要?jiǎng)討B(tài)網(wǎng)頁設(shè)計(jì)技術(shù)(3)ASP.NET是微軟推出的最新的動(dòng)態(tài)網(wǎng)頁開發(fā)技術(shù),是微軟.NET技術(shù)的重要組成部分。

ASP.NET也依賴附加到WEB服務(wù)器上的模塊,但是ASP.NET模塊(名稱SPNET_ISNET.DLL)本身并不處理所有工作,它將一些工作傳遞到.NETFramework中進(jìn)行。ASP、ASP.NET的區(qū)別:

ASP是采用解釋方式創(chuàng)建動(dòng)態(tài)網(wǎng)頁的服務(wù)器端技術(shù),只允許用戶使用腳本語言;ASP.NET采用編譯技術(shù),允許用戶使用.NET支持的任何語言。其主要支持的語言有VB.NET、C#等。6.WEB服務(wù)器及IISWEB服務(wù)器是一個(gè)軟件,用于管理WEB頁并使這些頁通過本地網(wǎng)絡(luò)或Internet的客戶瀏覽器使用。瀏覽器和WEB服務(wù)器可以在相距很遠(yuǎn)的不同電腦上,也可以在同一臺(tái)電腦上。它們的訪問方式?jīng)]有區(qū)別。常用的WEB服務(wù)器有Apache、IIS、Sambar等。它們支持的動(dòng)態(tài)網(wǎng)頁開發(fā)技術(shù)各不相同。IIS(InternetInformationServices)是微軟開發(fā)的WEB服務(wù)器,ASP和ASP.NET主要由IIS支持。IIS在WINDOWS2000的SERVER版是自動(dòng)安裝。在專業(yè)版或XP版中,必須指定安裝。WIN2000安裝IIS5.0,XP版安裝IIS5.1。要運(yùn)行ASP,安裝IIS就可以了。7.ASP.NET的基本工作原理.NET是微軟未來的發(fā)展戰(zhàn)略,意在為所有程序開發(fā)提供一個(gè)公共平臺(tái)。其核心就是.NETFramework,提供全面的.NET支持技術(shù)。.NETFramework本身由若干組件組成,ASP.NET就是其中的一種。.NETFramework的主要組成部分包括MSIL(MSIntermediateLanguage)、CLR(CommonLanguageRuntime)、.NETFramework類庫、.NET語言、ASP.NET等。MSIL是一個(gè)公共語言,CLR用于在計(jì)算機(jī)上執(zhí)行MSIL代碼。CLR負(fù)責(zé)與WINDOWS和IIS交互時(shí)涉及的全部實(shí)質(zhì)性任務(wù)。7.ASP.NET的基本工作原理(2).NETFramework類庫包含大量事先編制,提供全面的.NET支持技術(shù)。.NETFramework本身由若干組件組成,ASP.NET就是其中的一種。.NETFramework的主要組成部分包括MSIL(MSIntermediateLanguage)、CLR(CommonLanguageRuntime)、.NETFramework類庫、.NET語言、ASP.NET等。MSIL是一個(gè)公共語言,CLR用于在計(jì)算機(jī)上執(zhí)行MSIL代碼。CLR負(fù)責(zé)與WINDOWS和IIS交互時(shí)涉及的全部實(shí)質(zhì)性任務(wù)。.NETFramework類庫包含大量事先編制好的代碼,可以被應(yīng)用程序調(diào)用。.NET語言符合特殊的要求,可以編譯成MSIL。7.ASP.NET的基本工作原理(3)ASP是采用解釋方式執(zhí)行代碼。而ASP.NET程序在第1次執(zhí)行時(shí)是首先將代碼編譯成MSIL,然后通過JIT(JustInTime)編譯器將MSIL編譯成機(jī)器碼執(zhí)行。以后執(zhí)行就直接對(duì)MSIL執(zhí)行。使用MSIL的優(yōu)勢(shì)是,雖然在第1次執(zhí)行時(shí)比較慢,但是在以后執(zhí)行就很快。另外,MSIL可以使ASP.NET支持不同的語言,只要這種語言可以編譯為MSIL。另外,在不同的機(jī)器上安裝JIT,就可以使MSIL在不同的機(jī)器上運(yùn)行,實(shí)現(xiàn)跨平臺(tái)。另外,ASP.NET全部采用面向?qū)ο髾C(jī)制,事先設(shè)計(jì)了大量的基類,為開發(fā)應(yīng)用程序提供了極大的方便。8.IIS的安裝與ASP程序編制ASP程序是通過附屬于IIS的ASP.DDL解釋執(zhí)行的。IIS在WINDOWS2000的SERVER版中自動(dòng)安裝。在專業(yè)版或XP版要選定安裝。啟動(dòng)控制面板,單擊“添加/刪除程序”項(xiàng)。然后單擊“添加/刪除Windows組件”。在“Windows組件向?qū)А贝翱谥羞x中“Internet信息服務(wù)(IIS)”。然后,插入Windows的安裝盤。這時(shí)就會(huì)將IIS裝入系統(tǒng)。ASP應(yīng)用程序可以用文本編輯器開發(fā),也可以使用開發(fā)工具,比如FrontPage、Dreamweaver等。8.1ASP編程基礎(chǔ)ASP文件的內(nèi)容是純文本。包含三個(gè)部分:html、腳本語言代碼、ASP語法。Html部分會(huì)原封不動(dòng)的發(fā)送到客戶方。腳本語言包括VBScript和JSCript。分為客戶端執(zhí)行和服務(wù)器端執(zhí)行??蛻舳藞?zhí)行的會(huì)發(fā)往客戶端,不會(huì)在服務(wù)器端執(zhí)行。ASP服務(wù)器端的默認(rèn)腳本語言是VBScript。在ASP程序中,有兩種方式標(biāo)記服務(wù)器端腳本:(1)用<%、%>將服務(wù)器端的腳本括起來。任何<%之后到%>之間的腳本都在服務(wù)器端執(zhí)行。(2)用html標(biāo)簽<script>,并在標(biāo)簽內(nèi)加Runat=server參數(shù)。這兩種方法可以混合使用。8.2ASP內(nèi)置對(duì)象(1)ASP內(nèi)置對(duì)象為ASP特有,不屬于腳本語言。包括:

request對(duì)象:獲得客戶端信息;

response對(duì)象:將信息發(fā)送到客戶端;

application對(duì)象:管理全局會(huì)話信息。會(huì)話信息被所有用戶共享??稍诰W(wǎng)站的用戶間傳遞信息。

session對(duì)象:管理當(dāng)前會(huì)話信息。

server對(duì)象,提供WEB服務(wù)器的一些工具。

objectcontext對(duì)象,提交或終止由ASP腳本啟動(dòng)的事務(wù)。

ASPerror對(duì)象,捕捉ASP錯(cuò)誤。ASP還有一些完成專門任務(wù)的組件。如AdRotator組件,顯示橫幅。ADO組件,訪問數(shù)據(jù)庫。8.2ASP內(nèi)置對(duì)象(2)SERVER對(duì)象具有能夠訪問服務(wù)器有關(guān)信息的方法和屬性。(1)createobject方法:創(chuàng)建服務(wù)器組件實(shí)例。(2)htmlencode方法:對(duì)指定字符串進(jìn)行html編碼。即返回編碼本身的值而不是其效果。(3)mappath:將指定的相對(duì)路徑或虛擬路徑映射成服務(wù)器上的物理目錄。若路徑以斜杠開始,則將其視為完整的虛擬路徑(絕對(duì)路徑),否則將其視為啊asp文件所在當(dāng)前路徑的相對(duì)路徑。該方法只做字符串連接,不做存在性檢驗(yàn)。最終轉(zhuǎn)換為帶盤符的絕對(duì)路徑。9.文件類別與虛擬目錄靜態(tài)網(wǎng)頁保存的文件的擴(kuò)展名是.htm或html。ASP文件的擴(kuò)展名是.asp,ASP.NET文件為.aspx。網(wǎng)頁文件保存在服務(wù)器所在的磁盤中。為了管理的需要,應(yīng)該將網(wǎng)頁文件的物理位置映射為WEB站點(diǎn)。為此,應(yīng)該在WEB服務(wù)器上建立虛擬目錄。這樣,無論站點(diǎn)是保存在網(wǎng)絡(luò)上的任何位置,都可以通過URL訪問到。即WEB站點(diǎn)保證了網(wǎng)頁的相對(duì)位置不變。啟動(dòng)“我的電腦”創(chuàng)建網(wǎng)頁要保存的文件夾;啟動(dòng)IIS管理工具(“控制面板”中的“計(jì)算機(jī)管理”節(jié)點(diǎn)下的“Internet服務(wù)管理器”)。在窗口的“樹”窗格中選擇“默認(rèn)WEB站點(diǎn)”右擊。單擊“新建”→“虛擬目錄”,然后將建立的文件夾命名為WEB站點(diǎn)名保存。同時(shí)設(shè)置相關(guān)的屬性。10.1數(shù)據(jù)庫訪問技術(shù)概述(1)在應(yīng)用程序開發(fā)中,數(shù)據(jù)庫扮演著越來越重要的角色。數(shù)據(jù)庫技術(shù)的飛速發(fā)展使得數(shù)據(jù)訪問技術(shù)也隨之進(jìn)步。C/S及多層應(yīng)用程序結(jié)構(gòu)的出現(xiàn),使得開發(fā)人員不僅需要詳細(xì)了解正在使用的數(shù)據(jù)庫產(chǎn)品的知識(shí),還必須了解多種數(shù)據(jù)訪問技術(shù)。最早出現(xiàn)的數(shù)據(jù)庫訪問中間件是微軟的ODBC。目前常見的數(shù)據(jù)庫訪問技術(shù)有ODBC、DAO、RDO、OLEDB、ADO和ADO.NET以及JDBC等。在最基本的數(shù)據(jù)庫設(shè)計(jì)類型中,應(yīng)用程序僅依賴一個(gè)數(shù)據(jù)庫,可以直接針對(duì)數(shù)據(jù)庫系統(tǒng)的接口進(jìn)行編程。這種方法提供了一種快速而有效的數(shù)據(jù)訪問方式,但這種方法也意味著每個(gè)現(xiàn)有的應(yīng)用程序都必須有不同的版本以支持各個(gè)數(shù)據(jù)庫。數(shù)據(jù)庫訪問技術(shù)概述(2)隨著企業(yè)的發(fā)展、業(yè)務(wù)的變化、發(fā)展和合并,應(yīng)用程序必須訪問運(yùn)行于不同平臺(tái)的多種數(shù)據(jù)庫。ODBC

技術(shù)為訪問異構(gòu)的SQL數(shù)據(jù)庫提供了一個(gè)共同的接口。ODBC使用SQL作為訪問數(shù)據(jù)的標(biāo)準(zhǔn)。數(shù)據(jù)訪問對(duì)象(DAO)訪問數(shù)據(jù)庫是一種較高級(jí)別的數(shù)據(jù)訪問模式,建立在MicrosoftAccess的數(shù)據(jù)庫引擎基礎(chǔ)上。它通過數(shù)據(jù)庫引擎實(shí)現(xiàn)和底層數(shù)據(jù)庫的連接??梢杂肈AO直接訪問Access數(shù)據(jù)庫,也可以由DAO使用ODBC連接到不同的數(shù)據(jù)庫。DAO在其他地方較少使用。數(shù)據(jù)庫訪問技術(shù)概述(3)遠(yuǎn)程數(shù)據(jù)對(duì)象(RemoteDataObject,簡(jiǎn)稱RDO)是Microsoft為了克服這樣的限制創(chuàng)建的。RDO以O(shè)DBC為基礎(chǔ),是位于ODBCAPI之上的一個(gè)對(duì)象模型薄層,它依賴ODBCAPI選定的ODBC驅(qū)動(dòng)程序以及后端數(shù)據(jù)庫引擎實(shí)現(xiàn)大部分的智能和功能。對(duì)象鏈接和嵌入數(shù)據(jù)庫(OLEDB)是一種新的低層接口,它提供一種統(tǒng)一的數(shù)據(jù)訪問接口。OLEDB由三個(gè)組件構(gòu)成:數(shù)據(jù)使用者(例如,一個(gè)應(yīng)用程序);包含并公開數(shù)據(jù)的數(shù)據(jù)提供程序以及處理并傳輸數(shù)據(jù)的服務(wù)組件(例如,查詢處理器、游標(biāo)引擎),這些COM接口提供集中的數(shù)據(jù)庫管理服務(wù)。數(shù)據(jù)庫訪問技術(shù)概述(4)ActiveX數(shù)據(jù)對(duì)象(ADO)是與語言無關(guān)的組件技術(shù)。為了使得流行的各種編程語言都可以編寫符合OLEDB標(biāo)準(zhǔn)的應(yīng)用程序,微軟在OLEDBAPI之上,提供了一種面向?qū)ο?、與語言無關(guān)的應(yīng)用編程接口,即ADO。與DAO、RDO等類似,ADO實(shí)際上是一種對(duì)象模型,不過這個(gè)對(duì)象模型相對(duì)簡(jiǎn)單。ADO.NET是在微軟的.NET中創(chuàng)建分布式和數(shù)據(jù)共享應(yīng)用程序的應(yīng)用程序開發(fā)接口(API)。它是一組用于和數(shù)據(jù)源進(jìn)行交互的面向?qū)ο箢悗欤峁┡c數(shù)據(jù)源進(jìn)行交互的相關(guān)的公共方法,對(duì)于不同的數(shù)據(jù)源采用一組不同的類庫。數(shù)據(jù)庫訪問技術(shù)概述(5)JDBC是執(zhí)行SQL語句的JAVAAPI。JDBC(JAVADATABASECONNECTIVITY)是第一個(gè)支持JAVA語言的標(biāo)準(zhǔn)的數(shù)據(jù)庫API。1996年由SUN公司推出。JDBC由一組用JAVA語言編寫的類和接口組成。JDBC的基本功能:建立數(shù)據(jù)庫的連接;發(fā)送SQL語句;處理結(jié)果。JAVA通過JDBC-ODBC橋方式來使用ODBC。JAVA不能直接使用ODBC。10.2ODBC簡(jiǎn)介網(wǎng)絡(luò)環(huán)境下應(yīng)用數(shù)據(jù)庫的基本模式。10.2ODBC簡(jiǎn)介ODBC(OpenDatabaseConnectivity,開放數(shù)據(jù)庫互連)是由Microsoft開發(fā)和定義的、最早的(1992年)一種訪問數(shù)據(jù)庫的應(yīng)用程序接口標(biāo)準(zhǔn),它建立了一組規(guī)范,并提供了一組對(duì)數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)API,是一組用于訪問不同構(gòu)造數(shù)據(jù)庫的驅(qū)動(dòng)程序。一個(gè)基于ODBC的應(yīng)用程序?qū)?shù)據(jù)庫的操作不依賴任何DBMS,不必關(guān)注各類數(shù)據(jù)庫系統(tǒng)的構(gòu)造細(xì)節(jié),只要使用ODBC提供的驅(qū)動(dòng)程序,發(fā)送SQL語句,就可以存取各類數(shù)據(jù)庫中的數(shù)據(jù)。ODBC體系結(jié)構(gòu):

ODBC體系結(jié)構(gòu)分為應(yīng)用程序、驅(qū)動(dòng)管理程序、驅(qū)動(dòng)程序和數(shù)據(jù)源四層。ODBC的體系結(jié)構(gòu)(1)

ODBC的體系結(jié)構(gòu)(2)應(yīng)用程序要訪問一個(gè)數(shù)據(jù)庫,首先必須用ODBC管理器注冊(cè)一個(gè)數(shù)據(jù)源,管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫位置、數(shù)據(jù)庫類型及ODBC驅(qū)動(dòng)程序等信息,建立起ODBC與具體數(shù)據(jù)庫的聯(lián)系。這樣,只要應(yīng)用程序?qū)?shù)據(jù)源名提供給ODBC,ODBC就能建立起與相應(yīng)數(shù)據(jù)庫的連接。ODBCAPI不能直接訪問數(shù)據(jù)庫,必須通過驅(qū)動(dòng)程序管理器與數(shù)據(jù)庫交換信息。驅(qū)動(dòng)程序管理器負(fù)責(zé)將應(yīng)用程序?qū)DBCAPI的調(diào)用傳遞給正確的驅(qū)動(dòng)程序,而驅(qū)動(dòng)程序在執(zhí)行完相應(yīng)的操作后,將結(jié)果通過驅(qū)動(dòng)程序管理器返回給應(yīng)用程序。在訪問ODBC數(shù)據(jù)源時(shí)需要ODBC驅(qū)動(dòng)程序的支持。ODBC體系結(jié)構(gòu)與配置配置ODBC數(shù)據(jù)源:數(shù)據(jù)源是一組數(shù)據(jù)的位置。表示驅(qū)動(dòng)程序與某個(gè)目標(biāo)數(shù)據(jù)集連接的命名表達(dá)式,被稱為數(shù)據(jù)源名。數(shù)據(jù)源名中,包括用戶名、服務(wù)器名和數(shù)據(jù)庫名等。數(shù)據(jù)源分為三類:用戶數(shù)據(jù)源、系統(tǒng)數(shù)據(jù)源和文件數(shù)據(jù)源。用戶數(shù)據(jù)源只有創(chuàng)建該數(shù)據(jù)源的用戶可以使用,其他用戶不可使用。系統(tǒng)數(shù)據(jù)源可被所有用戶使用。文件數(shù)據(jù)源為指定的多個(gè)用戶使用。使用SQLServer的ODBC應(yīng)用程序接口開發(fā)應(yīng)用系統(tǒng),除了需安裝ODBC驅(qū)動(dòng)程序之外,還需要?jiǎng)?chuàng)建ODBC的數(shù)據(jù)源。ODBC應(yīng)用方法使用ODBC的應(yīng)用程序接口,執(zhí)行SQL語句時(shí),遵循一定的步驟:初始化、SQL操作和終止三部分。所有的ODBC應(yīng)用程序都必須遵守這個(gè)步驟。每一步驟中都使用ODBC的函數(shù)。1.初始化:分配環(huán)境句柄、設(shè)置環(huán)境參數(shù)、分配連接句柄、連接數(shù)據(jù)源。2.SQL操作:分配語句句柄、設(shè)置語句參數(shù)、執(zhí)行語句及處理結(jié)果。3.終止:斷開連接、釋放連接句柄、釋放環(huán)境句柄。

10.3OLEDB、ADO和ADO.NETOLEDB:OLEDB是Microsoft在ODBC之后開發(fā)的,是一種技術(shù)標(biāo)準(zhǔn),目的是用作所有數(shù)據(jù)類型的標(biāo)準(zhǔn)接口。這里的“數(shù)據(jù)”除了關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)之外,還包括郵件數(shù)據(jù)、WEB上的文本或圖形、目錄服務(wù)以及IMS和VSAM數(shù)據(jù)等。OLEDB是通用數(shù)據(jù)訪問的基礎(chǔ)。通用數(shù)據(jù)訪問指的是一組通用接口,它用來代表來自任何數(shù)據(jù)源的數(shù)據(jù)。OLEDB標(biāo)準(zhǔn)的核心內(nèi)容就是要求以上這些各種各樣的數(shù)據(jù)存儲(chǔ)都提供一種相同的訪問接口,使得數(shù)據(jù)的使用者(應(yīng)用程序)可以使用同樣的方法訪問數(shù)據(jù),而不用考慮數(shù)據(jù)的具體存儲(chǔ)地點(diǎn)、格式或類型。1.OLEDBOLEDB標(biāo)準(zhǔn)的具體實(shí)現(xiàn)是一組API函數(shù),與ODBCAPI類似。不同的是,OLEDB的API函數(shù)符合COM標(biāo)準(zhǔn),是基于對(duì)象的。而ODBCAPI是簡(jiǎn)單的CAPI。使用OLEDBAPI,可以訪問符合OLEDB標(biāo)準(zhǔn)的任何數(shù)據(jù)源。OLEDB標(biāo)準(zhǔn)實(shí)際上是規(guī)定了數(shù)據(jù)使用者和提供者之間的一種應(yīng)用層協(xié)議。OLEDB分兩種:直接的OLEDB和面向ODBC的OLEDB,后者架構(gòu)在ODBC上,這樣沒有自己的OLEDB提供者的數(shù)據(jù)庫也可以使用OLEDB的特點(diǎn)了。SQLSERVER2000的查詢處理程序是使用OLEDBAPI編寫的,所以在T-SQL語法中可以支持異種數(shù)據(jù)庫的查詢,前提是這些異種數(shù)據(jù)庫提供OLEDB的訪問接口。OLEDB的應(yīng)用程序一般被歸類為:OLEDB提供者的驅(qū)動(dòng)程序和OLEDB消費(fèi)者的應(yīng)用程序。2.ADOADO是封裝OLEDB所提供的功能的高級(jí)包裹程序,最初為VB6提供。ADO是一個(gè)OLEDB消費(fèi)者,將OLEDB封裝在一個(gè)對(duì)象模型中,允許不支持低級(jí)內(nèi)存訪問和操縱的交互式腳本語言,提供了對(duì)OLEDB數(shù)據(jù)源應(yīng)用程序級(jí)的訪問功能。ADO其實(shí)只是一個(gè)應(yīng)用程序?qū)哟蔚慕缑?,它用OLEDB來與數(shù)據(jù)庫通信??梢允褂肁DO編寫緊湊的腳本以便連接ODBC或OLEDB兼容的數(shù)據(jù)源。這樣,在ASP應(yīng)用程序中,用ADO連接數(shù)據(jù)庫,從而通過ODBC、OLEDB來進(jìn)行訪問。3.關(guān)于數(shù)據(jù)庫訪問的歸納ODBC最先推出,是連接oracle、SqlServer、Access等數(shù)據(jù)庫的一種接口標(biāo)準(zhǔn),各數(shù)據(jù)庫提供實(shí)現(xiàn)ODBC的“驅(qū)動(dòng)程序”。OLEDB是微軟“發(fā)明”用來淘汰ODBC的,OLEDB不光可以連接各種數(shù)據(jù)庫,還可以連接exchange、活動(dòng)目錄、甚至操作系統(tǒng)文件目錄等各種數(shù)據(jù)庫源(也需要分別使用不同的“驅(qū)動(dòng)程序”)。ADO也是微軟的,是用來淘汰早期微軟的RDO、DAO的(ADO可以做RDO、DAO能做的所有事),ADO在上層,通過下面的ODBC或者OLEDB來訪問數(shù)據(jù)源(注意不是數(shù)據(jù)庫,因?yàn)榭稍L問范圍包括活動(dòng)目錄等各種數(shù)據(jù))。不過微軟目前的ODBC實(shí)際是通過OLEDB訪問數(shù)據(jù)源的。層次關(guān)系:應(yīng)用程序->ADO->ODBC->OLEDB->數(shù)據(jù)源或:應(yīng)用程序->ADO->OLEDB->數(shù)據(jù)源10.4ADO的對(duì)象ASP訪問數(shù)據(jù)庫的基本步驟是:ADO主要有三個(gè)對(duì)象:Connection對(duì)象、Command對(duì)象、Recordset對(duì)象。通過Connection對(duì)象,程序與數(shù)據(jù)源建立連接,然后就可以傳遞SQL語句了。也可以用Command對(duì)象給出對(duì)數(shù)據(jù)庫的操作,而對(duì)結(jié)果記錄集的操作和瀏覽則由Recordset對(duì)象來實(shí)現(xiàn)。

ASP中連接ODBC數(shù)據(jù)庫方法(1)用ODBC連接數(shù)據(jù)庫:三種DSN,它們的區(qū)別很簡(jiǎn)單:用戶DSN只能用于本用戶。系統(tǒng)DSN和文件DSN的區(qū)別在于連接信息的存放位置不同:系統(tǒng)DSN存放在ODBC儲(chǔ)存區(qū)里,而文件DSN則放在一個(gè)文本文件中。在ASP中使用它們時(shí),對(duì)于SQLServer,寫法如下:用系統(tǒng)dsn:connstr="DSN=dsnname;UID=xx;PWD=xxx;DATABASE=dbname"用文件dsn:connstr="FILEDSN=dsnname;UID=xx;PWD=xxx;DATABASE=dbname"用連接字符串(不用建立DSN,即無DSN):connstr="DRIVER={SQLSERVER};SERVER=servername;UID=xx;PWD=xxx"

ASP中連接ODBC數(shù)據(jù)庫方法(2)在ASP中使用ODBC連接Access數(shù)據(jù)庫,寫法如下:用系統(tǒng)DSN:connstr="DSN=dsnname"(或者為:

connstr="DSN=dsnname;UID=xx;PWD=xxx")用文件DSN:connstr="FILEDSN=dsnname"還可以用連接字符串(不用建立DSN,即無DSN):

connstr="DRIVER={MicrosoftAccessDriver(*.MDB)};DBQ=d:\abc\abc.mdb“

(也可以用mappath對(duì)虛擬目錄進(jìn)行映射)

ASP中連接OLEDB數(shù)據(jù)庫方法在ASP中使用OLEDB連接數(shù)據(jù)庫,寫法如下:SQLServer數(shù)據(jù)庫:

connstr="PROVIDER=SQLOLEDB;DATASOURCE=servername;UID=xx;PWD=xxx;DATABASE=dbname"Access數(shù)據(jù)庫:

connstr="PROVICER=MICROSOFT.JET.OLEDB.4.0;DATASOURCE="&server.mappath("nwind.mdb")(映射到實(shí)際的物理路徑:c:\abc\abc.mdb)

10.4.1ASP中connection對(duì)象Connection對(duì)象代表與數(shù)據(jù)庫的連接。首先創(chuàng)建一個(gè)實(shí)例:

SETCONN=SERVER.CREATEOBJECT(ADODB.CONNECTION)然后定義連接方式字符串:

connstr=“PROVIDER=…”(前面的幾種方法)使用打開方法打開與物理數(shù)據(jù)源的連接:

connection.openconnstrEXECUTE方法

execute方法可以執(zhí)行指定查詢、SQL命令以及存儲(chǔ)程序。若執(zhí)行查詢,返回的記錄集是一個(gè)只進(jìn)游標(biāo)。

ASP中connection對(duì)象EXECUTE方法對(duì)于非按行返回的命令字符串:

connection.execute命令文本,操作行數(shù),選項(xiàng)對(duì)于按行返回的命令字符串:

SETRecordset=connection.execute(命令文本,操作行數(shù),選項(xiàng))選項(xiàng)是一個(gè)事先規(guī)定的長(zhǎng)整型常量值,用來執(zhí)行特定的操作。關(guān)閉連接

conn.close

10.4.2ASP中recordset對(duì)象Recordset對(duì)象代表一個(gè)表的記錄集或者執(zhí)行SQL命令所得的結(jié)果。通過游標(biāo)對(duì)記錄集中記錄進(jìn)行訪問。Recordset對(duì)象的屬性(1)cursortype游標(biāo)類型:AdOpenForwardOnly(只進(jìn))、AdOpenKeyset(鍵集)、AdOpenDynamic(動(dòng)態(tài))、AdOpenStatic(靜態(tài))(2)PageSize:邏輯上一頁的記錄行數(shù)(3)AbsolutePage:當(dāng)前記錄所在的頁碼。(4)AbsolutePosition:當(dāng)前游標(biāo)在Recordset中位置。(5)RecordCount:一個(gè)Recordset

中的記錄數(shù)。(6)BOF與EOF:0(FALSE),-1(TRUE)記錄集首尾標(biāo)識(shí)。ASP中recordset對(duì)象Recordset對(duì)象還有其他的一些屬性。Recordset對(duì)象的常用方法:(1)Open:打開代表基本表、查詢等Recordset的游標(biāo)。(2)Addnew:創(chuàng)建和初始化新記錄。(3)Delte:將Recordset的當(dāng)前或一組記錄標(biāo)記為刪除。(4)GetRows:將Recordset的多條記錄讀入一個(gè)數(shù)組。(5)Update:保存修改。Recordset對(duì)象必須支持。(6)MoveFirst、MoveLast、MoveNext、MovePrevious:移動(dòng)游標(biāo)位置。(7)Close:關(guān)閉Recordset對(duì)象。ASP中recordset對(duì)象Recordset對(duì)象的LockType屬性。在涉及多用戶修改數(shù)據(jù)時(shí),必須解決可能發(fā)生的多個(gè)用戶同時(shí)對(duì)同一條記錄進(jìn)行操作的情況??梢詫?duì)Recordset對(duì)象加鎖:(1)AdLockReadonly/1:只讀模式,無法更改,默認(rèn)。(2)AdLockPessimistic/2:排他性記錄鎖定。(3)AdLockOptimistic/3:非排他性記錄鎖定。(4)AdLockBatchOptimistic/4:非排他性批量更新。(7)Close:關(guān)閉Recordset對(duì)象。11.ADO.NETADO.NET是一種高級(jí)的數(shù)據(jù)庫訪問技術(shù)。是一個(gè)不同于ADO的技術(shù)。ADO.NET是一組對(duì)象類的名稱,由.NETFramework提供。.NET提供了兩個(gè)可管理的數(shù)據(jù)提供者。對(duì)于SQLSERVER是單獨(dú)的,僅與SQLSERVER對(duì)話,其速度非??臁?duì)于其他的數(shù)據(jù)源,有用于OLEDB的ManagedProvider,位于OLEDB的頂端。另外,還有用于ODBC的ManagedProvider。OLEDB和ODBC的ManagedProvider由MDAC提供。而單獨(dú)的SQLSERVER的ManagedDateProvider由CLR管理。11.

ADO.NETADO.NET是一種高級(jí)的數(shù)據(jù)庫訪問技術(shù)。是一個(gè)不同于ADO的技術(shù)。ADO.NET是一組對(duì)象類的名稱,由.NETFramework提供。.NET提供了兩個(gè)可管理的數(shù)據(jù)提供者。對(duì)于SQLSERVER是單獨(dú)的,僅與SQLSERVER對(duì)話,其速度非???。對(duì)于其他的數(shù)據(jù)源,有用于OLEDB的ManagedProvider,位于OLEDB的頂端。另外,還有用于ODBC的ManagedProvider。OLEDB和ODBC的ManagedProvider由MDAC提供。而單獨(dú)的SQLSERVER的ManagedDateProvider由CLR管理。11.ADO.NETADO.NET的應(yīng)用重點(diǎn)是Internet和基于Web的應(yīng)用程序??梢詫DO.NET對(duì)象模型劃分為兩個(gè)組件:DataSet和數(shù)據(jù)提供程序。DataSet是一個(gè)特殊的對(duì)象,它包含有一個(gè)或者多個(gè)表。數(shù)據(jù)提供程序由4個(gè)核心對(duì)象Connection、Command、DataReader和DataAdapter組合而成的。12.JDBC概述JDBC是Sun的Javasoft公司制定的Java數(shù)據(jù)庫連接(JavaDataBaseConnectivity)技術(shù)的簡(jiǎn)稱,由一組用Java編程語言編寫的類和接口組成,是為各種常用數(shù)據(jù)庫提供無縫聯(lián)接的技術(shù)。JDBC定義了Java語言同SQL數(shù)據(jù)之間的程序設(shè)計(jì)接口。JDBC是一種低級(jí)API,它用于直接調(diào)用SQL命令,并比其它的數(shù)據(jù)庫連接API易于使用。同時(shí)它也是高級(jí)API的基礎(chǔ),在此之上可以建立高級(jí)接口和工具。高級(jí)接口使用一種更易理解和更為方便的API,這種API在幕后被轉(zhuǎn)換為如JDBC這樣的低級(jí)接口。高級(jí)接口是“對(duì)用戶友好的”接口,例如用于Java的嵌入式SQL,DBMS實(shí)現(xiàn)SQL都是基于JDBC的高級(jí)API。12.2使用JDBC訪問數(shù)據(jù)庫JDBCAPI支持?jǐn)?shù)據(jù)庫訪問的兩層模型,也支持三層模型

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論