數(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ù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

request對象:獲得客戶端信息;

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

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

session對象:管理當前會話信息。

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

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

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

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

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

ODBC的體系結(jié)構(gòu)(2)應(yīng)用程序要訪問一個數(shù)據(jù)庫,首先必須用ODBC管理器注冊一個數(shù)據(jù)源,管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫位置、數(shù)據(jù)庫類型及ODBC驅(qū)動程序等信息,建立起ODBC與具體數(shù)據(jù)庫的聯(lián)系。這樣,只要應(yīng)用程序?qū)?shù)據(jù)源名提供給ODBC,ODBC就能建立起與相應(yīng)數(shù)據(jù)庫的連接。ODBCAPI不能直接訪問數(shù)據(jù)庫,必須通過驅(qū)動程序管理器與數(shù)據(jù)庫交換信息。驅(qū)動程序管理器負責將應(yīng)用程序?qū)DBCAPI的調(diào)用傳遞給正確的驅(qū)動程序,而驅(qū)動程序在執(zhí)行完相應(yīng)的操作后,將結(jié)果通過驅(qū)動程序管理器返回給應(yīng)用程序。在訪問ODBC數(shù)據(jù)源時需要ODBC驅(qū)動程序的支持。ODBC體系結(jié)構(gòu)與配置配置ODBC數(shù)據(jù)源:數(shù)據(jù)源是一組數(shù)據(jù)的位置。表示驅(qū)動程序與某個目標數(shù)據(jù)集連接的命名表達式,被稱為數(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ù)源為指定的多個用戶使用。使用SQLServer的ODBC應(yīng)用程序接口開發(fā)應(yīng)用系統(tǒng),除了需安裝ODBC驅(qū)動程序之外,還需要創(chuàng)建ODBC的數(shù)據(jù)源。ODBC應(yīng)用方法使用ODBC的應(yīng)用程序接口,執(zhí)行SQL語句時,遵循一定的步驟:初始化、SQL操作和終止三部分。所有的ODBC應(yīng)用程序都必須遵守這個步驟。每一步驟中都使用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ù)標準,目的是用作所有數(shù)據(jù)類型的標準接口。這里的“數(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標準的核心內(nèi)容就是要求以上這些各種各樣的數(shù)據(jù)存儲都提供一種相同的訪問接口,使得數(shù)據(jù)的使用者(應(yīng)用程序)可以使用同樣的方法訪問數(shù)據(jù),而不用考慮數(shù)據(jù)的具體存儲地點、格式或類型。1.OLEDBOLEDB標準的具體實現(xiàn)是一組API函數(shù),與ODBCAPI類似。不同的是,OLEDB的API函數(shù)符合COM標準,是基于對象的。而ODBCAPI是簡單的CAPI。使用OLEDBAPI,可以訪問符合OLEDB標準的任何數(shù)據(jù)源。OLEDB標準實際上是規(guī)定了數(shù)據(jù)使用者和提供者之間的一種應(yīng)用層協(xié)議。OLEDB分兩種:直接的OLEDB和面向ODBC的OLEDB,后者架構(gòu)在ODBC上,這樣沒有自己的OLEDB提供者的數(shù)據(jù)庫也可以使用OLEDB的特點了。SQLSERVER2000的查詢處理程序是使用OLEDBAPI編寫的,所以在T-SQL語法中可以支持異種數(shù)據(jù)庫的查詢,前提是這些異種數(shù)據(jù)庫提供OLEDB的訪問接口。OLEDB的應(yīng)用程序一般被歸類為:OLEDB提供者的驅(qū)動程序和OLEDB消費者的應(yīng)用程序。2.ADOADO是封裝OLEDB所提供的功能的高級包裹程序,最初為VB6提供。ADO是一個OLEDB消費者,將OLEDB封裝在一個對象模型中,允許不支持低級內(nèi)存訪問和操縱的交互式腳本語言,提供了對OLEDB數(shù)據(jù)源應(yīng)用程序級的訪問功能。ADO其實只是一個應(yīng)用程序?qū)哟蔚慕缑?,它用OLEDB來與數(shù)據(jù)庫通信??梢允褂肁DO編寫緊湊的腳本以便連接ODBC或OLEDB兼容的數(shù)據(jù)源。這樣,在ASP應(yīng)用程序中,用ADO連接數(shù)據(jù)庫,從而通過ODBC、OLEDB來進行訪問。3.關(guān)于數(shù)據(jù)庫訪問的歸納ODBC最先推出,是連接oracle、SqlServer、Access等數(shù)據(jù)庫的一種接口標準,各數(shù)據(jù)庫提供實現(xiàn)ODBC的“驅(qū)動程序”。OLEDB是微軟“發(fā)明”用來淘汰ODBC的,OLEDB不光可以連接各種數(shù)據(jù)庫,還可以連接exchange、活動目錄、甚至操作系統(tǒng)文件目錄等各種數(shù)據(jù)庫源(也需要分別使用不同的“驅(qū)動程序”)。ADO也是微軟的,是用來淘汰早期微軟的RDO、DAO的(ADO可以做RDO、DAO能做的所有事),ADO在上層,通過下面的ODBC或者OLEDB來訪問數(shù)據(jù)源(注意不是數(shù)據(jù)庫,因為可訪問范圍包括活動目錄等各種數(shù)據(jù))。不過微軟目前的ODBC實際是通過OLEDB訪問數(shù)據(jù)源的。層次關(guān)系:應(yīng)用程序->ADO->ODBC->OLEDB->數(shù)據(jù)源或:應(yīng)用程序->ADO->OLEDB->數(shù)據(jù)源10.4ADO的對象ASP訪問數(shù)據(jù)庫的基本步驟是:ADO主要有三個對象:Connection對象、Command對象、Recordset對象。通過Connection對象,程序與數(shù)據(jù)源建立連接,然后就可以傳遞SQL語句了。也可以用Command對象給出對數(shù)據(jù)庫的操作,而對結(jié)果記錄集的操作和瀏覽則由Recordset對象來實現(xiàn)。

ASP中連接ODBC數(shù)據(jù)庫方法(1)用ODBC連接數(shù)據(jù)庫:三種DSN,它們的區(qū)別很簡單:用戶DSN只能用于本用戶。系統(tǒng)DSN和文件DSN的區(qū)別在于連接信息的存放位置不同:系統(tǒng)DSN存放在ODBC儲存區(qū)里,而文件DSN則放在一個文本文件中。在ASP中使用它們時,對于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對虛擬目錄進行映射)

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")(映射到實際的物理路徑:c:\abc\abc.mdb)

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

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

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

connection.openconnstrEXECUTE方法

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

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

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

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

conn.close

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

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

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

溫馨提示

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

評論

0/150

提交評論