版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、規(guī)則的值枚舉方法:例:先在diannaoxs數(shù)據(jù)庫(kù)中創(chuàng)建規(guī)則對(duì)象“only_char”,規(guī)則指定為4位僅字母的字符。創(chuàng)建自定義數(shù)據(jù)類型“ID_ghs”,CREATE RULE only_char x IN (a-z A-Z a-z A-Za-z A-Z a-z A-Z) 用戶自定義函數(shù)用戶自定義函數(shù)創(chuàng)建過程舉例:創(chuàng)建過程舉例:例:例:在diannaoxs數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)自定義函數(shù)“進(jìn)價(jià)偏差” 。該函數(shù)以進(jìn)貨表2006中的貨號(hào)和進(jìn)貨日期為參數(shù),返回該單進(jìn)貨的進(jìn)價(jià)偏差,(進(jìn)價(jià)偏差=(進(jìn)價(jià)平均進(jìn)價(jià))/平均進(jìn)價(jià)) *100%)。CREATE FUNCTION 進(jìn)價(jià)偏差(貨號(hào) char,進(jìn)貨日期date
2、time)RETURNS floatBEGIN declare pjjj money,jjpc ploat set pjjj=(select sum(進(jìn)價(jià)數(shù)量)/sum(數(shù)量) from 進(jìn)貨表 2006 where 貨號(hào)=貨號(hào) and 進(jìn)貨日期=進(jìn)貨日期) RETURN (進(jìn)價(jià) 平均進(jìn)價(jià)) / 平均進(jìn)價(jià))*100% END需要計(jì)算,使之為貨號(hào)和進(jìn)貨日期對(duì)應(yīng)的進(jìn)價(jià)需要計(jì)算,使之為貨號(hào)對(duì)應(yīng)的平均進(jìn)價(jià)CREATE FUNCTION 進(jìn)價(jià)偏差(貨號(hào) char,進(jìn)貨日期datetime)RETURNS floatBEGIN DECLARE jj money pjjj money SELECT pjjj
3、= AVG(進(jìn)價(jià)) from 進(jìn)貨表2006 where 貨號(hào)=貨號(hào) SELECT jj= 進(jìn)價(jià) from 進(jìn)貨表2006 where 貨號(hào)=貨號(hào) and 進(jìn)貨日期=進(jìn)貨日期日期) RETURN (jj pjjj) / pjjj) *100END用戶自定義函數(shù)用戶自定義函數(shù)創(chuàng)建過程舉例:創(chuàng)建過程舉例:例:例:在diannaoxs數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)自定義函數(shù)“進(jìn)價(jià)偏差”,(進(jìn)價(jià)偏差=(進(jìn)價(jià)平均進(jìn)價(jià))/平均進(jìn)價(jià)) *100%)。該函數(shù)以進(jìn)貨表2006中的貨號(hào)和進(jìn)貨日期為參數(shù),返回該單進(jìn)貨的進(jìn)價(jià)偏差。8.1 ODBC的概念和配置方法的概念和配置方法8.2 統(tǒng)一數(shù)據(jù)訪問技術(shù)統(tǒng)一數(shù)據(jù)訪問技術(shù)OLB DB和
4、和ADO8.3嵌入式嵌入式SQL 開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序主要需要兩種技術(shù):開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序主要需要兩種技術(shù):數(shù)據(jù)庫(kù)鏈接數(shù)據(jù)庫(kù)鏈接和和在應(yīng)用程序中使用在應(yīng)用程序中使用SQLSQL。為此,需要了解如下的概念和。為此,需要了解如下的概念和技術(shù):技術(shù): ODBC ODBC 開放數(shù)據(jù)庫(kù)連接開放數(shù)據(jù)庫(kù)連接 OLB DBOLB DB面向數(shù)據(jù)庫(kù)應(yīng)用的對(duì)象鏈接和嵌入面向數(shù)據(jù)庫(kù)應(yīng)用的對(duì)象鏈接和嵌入 ADOADO組件式數(shù)據(jù)對(duì)象組件式數(shù)據(jù)對(duì)象 嵌入式嵌入式SQLSQL在高級(jí)編程語(yǔ)言中使用在高級(jí)編程語(yǔ)言中使用SQLSQL的技術(shù)的技術(shù) MS MS:與其創(chuàng)建一個(gè)統(tǒng)一數(shù)據(jù)庫(kù):與其創(chuàng)建一個(gè)統(tǒng)一數(shù)據(jù)庫(kù)(IBM(IBM和和Oracl
5、eOracle提倡提倡) ),不如提供一個(gè)能夠訪問不同數(shù)據(jù)庫(kù)的統(tǒng)一接口,這樣會(huì)不如提供一個(gè)能夠訪問不同數(shù)據(jù)庫(kù)的統(tǒng)一接口,這樣會(huì)更加實(shí)用更加實(shí)用 8.1 ODBC8.1 ODBC的概念和配置方法的概念和配置方法 概念概念8.1 ODBC8.1 ODBC的概念和配置方法的概念和配置方法 概念概念 ODBCODBC(Open Database Connectivity(Open Database Connectivity)即)即開放數(shù)據(jù)庫(kù)開放數(shù)據(jù)庫(kù)連接連接,是,是MSMS提供的訪問不同數(shù)據(jù)庫(kù)的統(tǒng)一接口。提供的訪問不同數(shù)據(jù)庫(kù)的統(tǒng)一接口。 ODBC ODBC是是MSMS開放服務(wù)結(jié)構(gòu)開放服務(wù)結(jié)構(gòu)(WOSA
6、(WOSA,Windows Open Windows Open Services Architecture)Services Architecture)中有關(guān)數(shù)據(jù)庫(kù)的一個(gè)組件。中有關(guān)數(shù)據(jù)庫(kù)的一個(gè)組件。 ODBCODBC建立了一組規(guī)范,并提供了一組建立了一組規(guī)范,并提供了一組訪問數(shù)據(jù)庫(kù)的標(biāo)訪問數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)準(zhǔn)APIAPI( (Application Programming Interface應(yīng)用程序編程接應(yīng)用程序編程接口口) )。 ODBCODBC本身也提供了本身也提供了對(duì)對(duì)SQLSQL語(yǔ)言的支持語(yǔ)言的支持,用戶可以直接,用戶可以直接將將SQLSQL語(yǔ)句發(fā)給語(yǔ)句發(fā)給ODBCODBC。8.1 ODB
7、C8.1 ODBC的概念和配置方法的概念和配置方法 概念概念 一個(gè)基于一個(gè)基于ODBCODBC的應(yīng)用程序并不需要直接與的應(yīng)用程序并不需要直接與DBMSDBMS通信,通信,所有的數(shù)據(jù)庫(kù)操作由所有的數(shù)據(jù)庫(kù)操作由ODBCODBC中相應(yīng)的驅(qū)動(dòng)程序中相應(yīng)的驅(qū)動(dòng)程序完成。完成。 ODBCODBC的最大優(yōu)點(diǎn)是能以統(tǒng)一的方式處理所有的數(shù)據(jù)庫(kù)。的最大優(yōu)點(diǎn)是能以統(tǒng)一的方式處理所有的數(shù)據(jù)庫(kù)。ODBCODBC組成組成位于位于Windows控制面板的控制面板的ODBC選項(xiàng)內(nèi)選項(xiàng)內(nèi),用于管理安裝的用于管理安裝的ODBC驅(qū)驅(qū)動(dòng)程序和管理數(shù)據(jù)源動(dòng)程序和管理數(shù)據(jù)源 包含在包含在ODBC32.DLL中,對(duì)用戶透明,中,對(duì)用戶透明
8、,用于管理用于管理ODBC驅(qū)動(dòng)程序驅(qū)動(dòng)程序 是一些是一些DLL,提供了,提供了ODBC與各種與各種DBMS之間的接口之間的接口 是一種數(shù)據(jù)連接的抽象。包含了數(shù)據(jù)庫(kù)位是一種數(shù)據(jù)連接的抽象。包含了數(shù)據(jù)庫(kù)位置和數(shù)據(jù)庫(kù)類型等信息置和數(shù)據(jù)庫(kù)類型等信息8.1 ODBC8.1 ODBC的概念和配置方法的概念和配置方法 概念概念 應(yīng)用程序要訪問一個(gè)數(shù)據(jù)庫(kù),首先用應(yīng)用程序要訪問一個(gè)數(shù)據(jù)庫(kù),首先用ODBCODBC管理器注管理器注冊(cè)一個(gè)冊(cè)一個(gè)數(shù)據(jù)源數(shù)據(jù)源,即配置相應(yīng)的,即配置相應(yīng)的ODBCODBC驅(qū)動(dòng)。管理器根據(jù)數(shù)驅(qū)動(dòng)。管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫(kù)位置、數(shù)據(jù)庫(kù)類型及據(jù)源提供的數(shù)據(jù)庫(kù)位置、數(shù)據(jù)庫(kù)類型及ODBCODBC
9、驅(qū)動(dòng)程序等驅(qū)動(dòng)程序等信息,建立起信息,建立起ODBCODBC與具體數(shù)據(jù)庫(kù)的聯(lián)系。與具體數(shù)據(jù)庫(kù)的聯(lián)系。 SQL Server SQL Server服務(wù)器實(shí)例是服務(wù)器實(shí)例是ODBCODBC可用的數(shù)據(jù)源之一??捎玫臄?shù)據(jù)源之一。8.1 ODBC8.1 ODBC的概念和配置方法的概念和配置方法 配置配置/注冊(cè)注冊(cè)O(shè)DBC數(shù)據(jù)源數(shù)據(jù)源 ODBCODBC數(shù)據(jù)源配置數(shù)據(jù)源配置/ /注冊(cè)方法:注冊(cè)方法:WindowsWindows開始菜單開始菜單 控制面板控制面板 管理工具管理工具 ODBC ODBC數(shù)據(jù)源,數(shù)據(jù)源,將打開將打開ODBCODBC數(shù)據(jù)源管理器數(shù)據(jù)源管理器 在系統(tǒng)在系統(tǒng)DNSDNS頁(yè)框窗口中選頁(yè)框窗
10、口中選“添添加加”,將打開創(chuàng)鍵新數(shù)據(jù)源對(duì)話框,將打開創(chuàng)鍵新數(shù)據(jù)源對(duì)話框 選選“SQL ServerSQL Server”, 選選“完成完成”,則打開新,則打開新“創(chuàng)建數(shù)據(jù)源向?qū)?chuàng)建數(shù)據(jù)源向?qū)А保S向?qū)нx,跟隨向?qū)нx擇要連接的數(shù)據(jù)庫(kù)、指定數(shù)據(jù)庫(kù)描述名稱等即完成創(chuàng)建數(shù)擇要連接的數(shù)據(jù)庫(kù)、指定數(shù)據(jù)庫(kù)描述名稱等即完成創(chuàng)建數(shù)據(jù)源,此后,可以選擇據(jù)源,此后,可以選擇“測(cè)試數(shù)據(jù)源測(cè)試數(shù)據(jù)源”,以檢驗(yàn)新數(shù)據(jù)源,以檢驗(yàn)新數(shù)據(jù)源的有效性。的有效性。 對(duì)對(duì)本地本地?cái)?shù)據(jù)庫(kù),通常在數(shù)據(jù)庫(kù),通常在“用戶用戶 DSNDSN”選項(xiàng)卡上創(chuàng)建選項(xiàng)卡上創(chuàng)建一個(gè)項(xiàng)一個(gè)項(xiàng)(DSN(DSN數(shù)據(jù)源名數(shù)據(jù)源名) );對(duì);對(duì)遠(yuǎn)程遠(yuǎn)程數(shù)據(jù)庫(kù),則
11、在數(shù)據(jù)庫(kù),則在“系統(tǒng)系統(tǒng)DSNDSN”上創(chuàng)建,要在上創(chuàng)建,要在語(yǔ)言平臺(tái)語(yǔ)言平臺(tái)(如(如VC+VC+)內(nèi)部創(chuàng)建數(shù)據(jù)庫(kù),則)內(nèi)部創(chuàng)建數(shù)據(jù)庫(kù),則使用使用“文件文件 DSNDSN”選項(xiàng)卡。設(shè)置不當(dāng)會(huì)引起數(shù)據(jù)庫(kù)訪問選項(xiàng)卡。設(shè)置不當(dāng)會(huì)引起數(shù)據(jù)庫(kù)訪問錯(cuò)誤,所以錯(cuò)誤,所以O(shè)DBCODBC設(shè)置常常是數(shù)據(jù)庫(kù)連接錯(cuò)誤首先應(yīng)當(dāng)查設(shè)置常常是數(shù)據(jù)庫(kù)連接錯(cuò)誤首先應(yīng)當(dāng)查看之處看之處) )8.1 ODBC8.1 ODBC的概念和配置方法的概念和配置方法 配置配置/注冊(cè)注冊(cè)O(shè)DBC數(shù)據(jù)源數(shù)據(jù)源 注冊(cè)完畢,注冊(cè)完畢,ODBCODBC數(shù)據(jù)源管理窗口將出現(xiàn)一個(gè)新的數(shù)據(jù)源管理窗口將出現(xiàn)一個(gè)新的“系統(tǒng)系統(tǒng)DNSDNS”,即用戶定義的數(shù)據(jù)源
12、(名稱由用戶指定)。即用戶定義的數(shù)據(jù)源(名稱由用戶指定)。 此后,就可以在應(yīng)用程序中,通過此后,就可以在應(yīng)用程序中,通過SQL Server SQL Server 驅(qū)動(dòng)程序驅(qū)動(dòng)程序(DriverDriver)訪問這個(gè)數(shù)據(jù)源。)訪問這個(gè)數(shù)據(jù)源。 例:用例:用VC+VC+開發(fā)的查詢開發(fā)的查詢UIUI綁定綁定pubspubs中的數(shù)據(jù)表中的數(shù)據(jù)表authorsauthors。其他選項(xiàng)卡的含義和作用:其他選項(xiàng)卡的含義和作用:驅(qū)動(dòng)程序:它是數(shù)據(jù)源的軟接口。通過驅(qū)動(dòng)程序頁(yè)框可以查看目驅(qū)動(dòng)程序:它是數(shù)據(jù)源的軟接口。通過驅(qū)動(dòng)程序頁(yè)框可以查看目前可用的驅(qū)動(dòng)程序,也可以安裝新的驅(qū)動(dòng)程序。前可用的驅(qū)動(dòng)程序,也可以安裝
13、新的驅(qū)動(dòng)程序。跟蹤:可以通過設(shè)置該選項(xiàng),以跟蹤:可以通過設(shè)置該選項(xiàng),以O(shè)DBCODBC提供的相應(yīng)功能跟蹤數(shù)據(jù)庫(kù)提供的相應(yīng)功能跟蹤數(shù)據(jù)庫(kù)進(jìn)行的各種事務(wù),因?yàn)楦檿r(shí)日志文件會(huì)膨脹很快,缺省設(shè)置是進(jìn)行的各種事務(wù),因?yàn)楦檿r(shí)日志文件會(huì)膨脹很快,缺省設(shè)置是不跟蹤。不跟蹤。 連接池(連接池(Connection PoolConnection Pool):也稱緩沖池。在數(shù)據(jù)庫(kù)處理中,):也稱緩沖池。在數(shù)據(jù)庫(kù)處理中,運(yùn)算開銷最大的是建立數(shù)據(jù)庫(kù)連接,連接池通過運(yùn)算開銷最大的是建立數(shù)據(jù)庫(kù)連接,連接池通過重用以前的連接重用以前的連接來(lái)節(jié)省運(yùn)算開銷。來(lái)節(jié)省運(yùn)算開銷。 連接池的原理連接池的原理:對(duì)于已經(jīng)建立的數(shù)據(jù)庫(kù)連接
14、,當(dāng)訪問程序要:對(duì)于已經(jīng)建立的數(shù)據(jù)庫(kù)連接,當(dāng)訪問程序要求斷開時(shí)只做邏輯斷開,而其物理連接被存儲(chǔ)在求斷開時(shí)只做邏輯斷開,而其物理連接被存儲(chǔ)在“池池”中。當(dāng)下中。當(dāng)下一個(gè)用戶訪問時(shí),可以直接從連接池中取得需要的連接,而提高一個(gè)用戶訪問時(shí),可以直接從連接池中取得需要的連接,而提高系統(tǒng)的響應(yīng)速度。系統(tǒng)的響應(yīng)速度。 連接池的思想也被用在連接池的思想也被用在ADOADO等較先進(jìn)的數(shù)據(jù)庫(kù)連接模式中。等較先進(jìn)的數(shù)據(jù)庫(kù)連接模式中。 Win7設(shè)置ODBC數(shù)據(jù)源的方法:在cmd命令框中輸入“odbcad32”打開ODBC管理器8.1 ODBC8.1 ODBC的概念和配置方法的概念和配置方法 概念概念8.2 OLB
15、DB8.2 OLB DB和和ADO ADO UDA:一種新型數(shù)據(jù)訪問技術(shù):一種新型數(shù)據(jù)訪問技術(shù)UDA( Universal Data Access)UDA( Universal Data Access)是是MSMS推出的統(tǒng)一數(shù)據(jù)訪問推出的統(tǒng)一數(shù)據(jù)訪問技術(shù),它能用于訪問分布于不同場(chǎng)地、不同存儲(chǔ)格式的數(shù)技術(shù),它能用于訪問分布于不同場(chǎng)地、不同存儲(chǔ)格式的數(shù)據(jù)。據(jù)。 UDAUDA技術(shù)是繼技術(shù)是繼ODBCODBC之后數(shù)據(jù)訪問技術(shù)的又一飛躍。之后數(shù)據(jù)訪問技術(shù)的又一飛躍。UDAUDA技術(shù)包括技術(shù)包括兩層標(biāo)準(zhǔn)接口兩層標(biāo)準(zhǔn)接口 OLE DB OLE DB 面向數(shù)據(jù)庫(kù)應(yīng)用的面向數(shù)據(jù)庫(kù)應(yīng)用的對(duì)象鏈接和嵌入對(duì)象鏈接和嵌
16、入系統(tǒng)級(jí)編程接口系統(tǒng)級(jí)編程接口 ADO ADO 組件式數(shù)據(jù)對(duì)象組件式數(shù)據(jù)對(duì)象應(yīng)用層編程接口應(yīng)用層編程接口8.2 OLB DB8.2 OLB DB和和ADO ADO UDA:一種新型數(shù)據(jù)訪問技術(shù):一種新型數(shù)據(jù)訪問技術(shù)兩層標(biāo)準(zhǔn)接口:兩層標(biāo)準(zhǔn)接口:(1 1)OLE DBOLE DB(Object linked & Banding DatebaseObject linked & Banding Datebase對(duì)象連對(duì)象連接與嵌入式數(shù)據(jù)庫(kù))是接與嵌入式數(shù)據(jù)庫(kù))是系統(tǒng)級(jí)的編程接口系統(tǒng)級(jí)的編程接口,它定義了一組,它定義了一組COMCOM接口(接口(Component Object ModelCompone
17、nt Object Model組件對(duì)象模型),它們組件對(duì)象模型),它們封裝了訪問多種數(shù)據(jù)庫(kù)系統(tǒng)的操作,為數(shù)據(jù)用戶和提供商提封裝了訪問多種數(shù)據(jù)庫(kù)系統(tǒng)的操作,為數(shù)據(jù)用戶和提供商提供了建立標(biāo)準(zhǔn)。供了建立標(biāo)準(zhǔn)。OLE DBOLE DB提供的是提供的是底層軟件接口底層軟件接口, ,可在如可在如C/C+C/C+等中、低級(jí)語(yǔ)言中直接使用。等中、低級(jí)語(yǔ)言中直接使用。8.2 OLB DB8.2 OLB DB和和ADO ADO UDA:一種新型數(shù)據(jù)訪問技術(shù):一種新型數(shù)據(jù)訪問技術(shù)兩層標(biāo)準(zhǔn)接口:兩層標(biāo)準(zhǔn)接口:(2 2)ADOADO (ActiveX Data Objects (ActiveX Data Objects
18、控件數(shù)據(jù)對(duì)象控件數(shù)據(jù)對(duì)象) ) 是是應(yīng)用層應(yīng)用層的編程接口的編程接口。ADOADO對(duì)對(duì)OLE DBOLE DB進(jìn)行了封裝進(jìn)行了封裝, ,它為編程語(yǔ)言提供了它為編程語(yǔ)言提供了訪問訪問OLE DBOLE DB的中間層。可在各種腳本語(yǔ)言的中間層。可在各種腳本語(yǔ)言(Script)(Script)或一些宏或一些宏語(yǔ)言中,直接使用語(yǔ)言中,直接使用ADOADO訪問數(shù)據(jù)庫(kù)操作訪問數(shù)據(jù)庫(kù)操作; ;它適合于各種客戶機(jī)它適合于各種客戶機(jī)/ /服務(wù)器應(yīng)用系統(tǒng)和基于服務(wù)器應(yīng)用系統(tǒng)和基于WebWeb的應(yīng)用。它比此前的一些數(shù)據(jù)訪的應(yīng)用。它比此前的一些數(shù)據(jù)訪問對(duì)象模型(如問對(duì)象模型(如DAODAO、RDORDO)使用更方便,
19、數(shù)據(jù)訪問效率更高。)使用更方便,數(shù)據(jù)訪問效率更高。 UDAUDA的層次結(jié)構(gòu)圖的層次結(jié)構(gòu)圖應(yīng)用程序既可以通過應(yīng)用程序既可以通過ADO訪問數(shù)據(jù)也可以訪問數(shù)據(jù)也可以直接通過直接通過OLE DB訪訪問數(shù)據(jù)問數(shù)據(jù) OLE DB分成兩部分分成兩部分,一部分由數(shù)據(jù)提供一部分由數(shù)據(jù)提供者實(shí)現(xiàn)者實(shí)現(xiàn),另一部分由另一部分由系統(tǒng)提供系統(tǒng)提供OLE DBOLE DB兩層結(jié)構(gòu)的優(yōu)點(diǎn):兩層結(jié)構(gòu)的優(yōu)點(diǎn):既為應(yīng)用程序提供了多種選擇方案既為應(yīng)用程序提供了多種選擇方案, ,又簡(jiǎn)化了數(shù)據(jù)提供方實(shí)現(xiàn)服務(wù)又簡(jiǎn)化了數(shù)據(jù)提供方實(shí)現(xiàn)服務(wù)功能的手段功能的手段, ,使得第三方發(fā)布數(shù)據(jù)更為簡(jiǎn)便使得第三方發(fā)布數(shù)據(jù)更為簡(jiǎn)便, ,而在應(yīng)用程序方可以而在
20、應(yīng)用程序方可以得到全面的功能服務(wù)得到全面的功能服務(wù)8.2 OLB DB8.2 OLB DB和和ADO ADO OLE DB體系結(jié)構(gòu)體系結(jié)構(gòu) OLE DB OLE DB是應(yīng)用程序通向不同數(shù)據(jù)源的低級(jí)接口,它不僅是應(yīng)用程序通向不同數(shù)據(jù)源的低級(jí)接口,它不僅具有具有SQLSQL編譯能力,還提供其他編譯能力,還提供其他非非SQLSQL數(shù)據(jù)類型數(shù)據(jù)類型的應(yīng)用方案。的應(yīng)用方案。 OLE DBOLE DB基于基于OLEOLE(對(duì)象鏈接與嵌入)技術(shù),它可以與任(對(duì)象鏈接與嵌入)技術(shù),它可以與任何何MS Visual StudioMS Visual Studio產(chǎn)品協(xié)同工作產(chǎn)品協(xié)同工作,提供數(shù)據(jù)訪問功能。,提供數(shù)
21、據(jù)訪問功能。8.2 OLB DB8.2 OLB DB和和ADO ADO OLE DB體系結(jié)構(gòu)體系結(jié)構(gòu) OLE DB OLE DB 與與ODBC ODBC 的關(guān)系的關(guān)系 OLE DB OLE DB 和和ODBC ODBC 都提供統(tǒng)一的數(shù)據(jù)訪問接口,但都提供統(tǒng)一的數(shù)據(jù)訪問接口,但OLE DB OLE DB 并并非替代非替代ODBC ODBC 的新標(biāo)準(zhǔn)。它們只是不同的標(biāo)準(zhǔn)。的新標(biāo)準(zhǔn)。它們只是不同的標(biāo)準(zhǔn)。 ODBC ODBC 的對(duì)象是基于的對(duì)象是基于SQL SQL 的數(shù)據(jù)源的數(shù)據(jù)源 OLE DB OLE DB 的對(duì)象則是任何數(shù)據(jù)的對(duì)象則是任何數(shù)據(jù), , 包括關(guān)系或非關(guān)系數(shù)據(jù)庫(kù)中包括關(guān)系或非關(guān)系數(shù)據(jù)庫(kù)中
22、的數(shù)據(jù)。的數(shù)據(jù)。 符合符合ODBC ODBC 標(biāo)準(zhǔn)的數(shù)據(jù)源是標(biāo)準(zhǔn)的數(shù)據(jù)源是OLE DB OLE DB 標(biāo)準(zhǔn)數(shù)據(jù)的子集。標(biāo)準(zhǔn)數(shù)據(jù)的子集。8.2 OLB DB8.2 OLB DB和和ADO ADO UDA:一種新型數(shù)據(jù)訪問技術(shù):一種新型數(shù)據(jù)訪問技術(shù) OLE DB OLE DB和和ADOADO都以都以COMCOM組件組件的形式實(shí)現(xiàn)。的形式實(shí)現(xiàn)。 COMCOM(Component Object ModelComponent Object Model組件式對(duì)象模型)是組件式對(duì)象模型)是MSMS為了軟件生產(chǎn)更加符合人類的行為方式開發(fā)的一種新的軟件為了軟件生產(chǎn)更加符合人類的行為方式開發(fā)的一種新的軟件開發(fā)架構(gòu)
23、。在該構(gòu)架下,開發(fā)商開發(fā)特定功能的組件,次級(jí)開發(fā)架構(gòu)。在該構(gòu)架下,開發(fā)商開發(fā)特定功能的組件,次級(jí)開發(fā)人員只需將它們按需要組合起來(lái),構(gòu)成復(fù)雜的應(yīng)用系統(tǒng)。開發(fā)人員只需將它們按需要組合起來(lái),構(gòu)成復(fù)雜的應(yīng)用系統(tǒng)。 COMCOM的的目標(biāo)目標(biāo):實(shí)現(xiàn)一個(gè)稱為:實(shí)現(xiàn)一個(gè)稱為COMCOM庫(kù)的庫(kù)的APIAPI。 COMCOM的的發(fā)布形式發(fā)布形式:DLLDLL或或EXEEXE,因此具有語(yǔ)言無(wú)關(guān)性。,因此具有語(yǔ)言無(wú)關(guān)性。8.2 OLB DB8.2 OLB DB和和ADO ADO ADO對(duì)象模型對(duì)象模型 ADOADO對(duì)象模型對(duì)象模型定義了一組可用于數(shù)據(jù)庫(kù)訪問的定義了一組可用于數(shù)據(jù)庫(kù)訪問的ActiveXActiveX對(duì)象
24、對(duì)象, ,可被可被Visual BasicVisual Basic、Visual C+Visual C+、JavaJava(以及其他(以及其他一些腳本語(yǔ)言)調(diào)用。一些腳本語(yǔ)言)調(diào)用。特性特性1 1:ADOADO比一般數(shù)據(jù)庫(kù)接口更適用于網(wǎng)絡(luò)環(huán)境;比一般數(shù)據(jù)庫(kù)接口更適用于網(wǎng)絡(luò)環(huán)境;特性特性2 2:ADOADO用一組接口包裝用一組接口包裝OLE DBOLE DB,使用更簡(jiǎn)單。,使用更簡(jiǎn)單。8.2 OLB DB8.2 OLB DB和和ADO ADO UDA:一種新型數(shù)據(jù)訪問技術(shù):一種新型數(shù)據(jù)訪問技術(shù) OLE DB OLE DB模型包括的主要模型包括的主要COMCOM對(duì)象對(duì)象: :(1)(1)數(shù)據(jù)源數(shù)據(jù)
25、源(Data Source)(Data Source)對(duì)象:指定數(shù)據(jù)提供者、管理用對(duì)象:指定數(shù)據(jù)提供者、管理用戶權(quán)限、建立與數(shù)據(jù)源的連接等初始操作。戶權(quán)限、建立與數(shù)據(jù)源的連接等初始操作。(2)(2)會(huì)話會(huì)話(Session)(Session)對(duì)象:在數(shù)據(jù)源連接的基礎(chǔ)上,定義事對(duì)象:在數(shù)據(jù)源連接的基礎(chǔ)上,定義事務(wù)控制方法。務(wù)控制方法。(3)(3)命令命令(Command)(Command)對(duì)象:定義各種數(shù)據(jù)操作(如查詢、修對(duì)象:定義各種數(shù)據(jù)操作(如查詢、修改、插入等)。改、插入等)。(4)(4)行集行集(Rowset)(Rowset)對(duì)象:定義數(shù)據(jù)元組的抽象表示。對(duì)象:定義數(shù)據(jù)元組的抽象表示。9
26、.2 OLB DB9.2 OLB DB和和ADO ADO ADO對(duì)象模型對(duì)象模型 ADOADO對(duì)象模型對(duì)象模型 典型的典型的ADOADO應(yīng)用過程:用應(yīng)用過程:用ConnectionConnection對(duì)象定義的方法建立與對(duì)象定義的方法建立與數(shù)據(jù)源的鏈接數(shù)據(jù)源的鏈接 -用用CommandCommand對(duì)象調(diào)用數(shù)據(jù)庫(kù)操作對(duì)象調(diào)用數(shù)據(jù)庫(kù)操作 用用RecordsetRecordset對(duì)象定義的方法對(duì)結(jié)果集做定位讀取等操作。對(duì)象定義的方法對(duì)結(jié)果集做定位讀取等操作。 Command Command命令所使用的數(shù)據(jù)庫(kù)操作語(yǔ)言與底層所對(duì)應(yīng)的命令所使用的數(shù)據(jù)庫(kù)操作語(yǔ)言與底層所對(duì)應(yīng)的OLE OLE DBDB數(shù)據(jù)源
27、有關(guān)數(shù)據(jù)源有關(guān), ,不同的數(shù)據(jù)源可以使用不同的命令語(yǔ)言不同的數(shù)據(jù)源可以使用不同的命令語(yǔ)言, ,比如關(guān)比如關(guān)系型數(shù)據(jù)庫(kù)使用系型數(shù)據(jù)庫(kù)使用SQLSQL作為命令語(yǔ)言。作為命令語(yǔ)言。 8.2 OLB DB8.2 OLB DB和和ADO ADO ADO對(duì)象模型對(duì)象模型 (1)(1)ConnectionConnection對(duì)象:對(duì)象: 一個(gè)一個(gè)ConnectionConnection對(duì)象實(shí)例代表與數(shù)據(jù)源之間的一個(gè)鏈接對(duì)象實(shí)例代表與數(shù)據(jù)源之間的一個(gè)鏈接, , 該對(duì)象的屬性與功能設(shè)置:該對(duì)象的屬性與功能設(shè)置:通過通過ConnectionStringConnectionString、ConnectionTime
28、OutConnectionTimeOut和和ModeMode屬性設(shè)置屬性設(shè)置連接串、超時(shí)信息、訪問模式。連接串、超時(shí)信息、訪問模式。通過通過CursorLocationCursorLocation屬性設(shè)置客戶端游標(biāo)。屬性設(shè)置客戶端游標(biāo)。通過通過DefaultDatabaseDefaultDatabase屬性設(shè)置鏈接的默認(rèn)數(shù)據(jù)庫(kù)屬性設(shè)置鏈接的默認(rèn)數(shù)據(jù)庫(kù) 8.2 OLB DB8.2 OLB DB和和ADO ADO ADO對(duì)象模型對(duì)象模型 (2) Command(2) Command對(duì)象:對(duì)象: CommandCommand對(duì)象通過其成員函數(shù)定義了常規(guī)數(shù)據(jù)庫(kù)操作,該對(duì)象通過其成員函數(shù)定義了常規(guī)數(shù)據(jù)庫(kù)
29、操作,該對(duì)象的屬性與功能設(shè)置:對(duì)象的屬性與功能設(shè)置: 通過通過CommandTextCommandText屬性設(shè)置命令串。屬性設(shè)置命令串。 通過通過ParametersParameters集合屬性和集合屬性和ParameterParameter對(duì)象定義參數(shù)化查詢,對(duì)象定義參數(shù)化查詢,或定義存儲(chǔ)過程的參數(shù)?;蚨x存儲(chǔ)過程的參數(shù)。 8.2 OLB DB8.2 OLB DB和和ADO ADO ADO對(duì)象模型對(duì)象模型 (3)Recordset(3)Recordset對(duì)象:對(duì)象: RecordsetRecordset對(duì)象按照關(guān)系表結(jié)構(gòu)管理數(shù)據(jù)對(duì)象按照關(guān)系表結(jié)構(gòu)管理數(shù)據(jù), ,定義了對(duì)數(shù)據(jù)定義了對(duì)數(shù)據(jù)子集的
30、訪問方法。并支持通過游標(biāo)訪問數(shù)據(jù)子集,該對(duì)象的子集的訪問方法。并支持通過游標(biāo)訪問數(shù)據(jù)子集,該對(duì)象的 屬性與功能設(shè)置:屬性與功能設(shè)置: 利用利用CursorTypeCursorType屬性設(shè)置游標(biāo)類型。屬性設(shè)置游標(biāo)類型。 通過通過OpenOpen方法打開記錄集數(shù)據(jù)。方法打開記錄集數(shù)據(jù)。 通過通過MoveFirstMoveFirst、MoveLastMoveLast、MoveNextMoveNext和和MovePreviousMovePrevious方法定方法定義游標(biāo)的移動(dòng)操作。義游標(biāo)的移動(dòng)操作。 RecordsetRecordset對(duì)象既可以管理對(duì)象既可以管理ConnectionConnecti
31、on或或CommandCommand對(duì)象對(duì)象實(shí)例的結(jié)果數(shù)據(jù)集實(shí)例的結(jié)果數(shù)據(jù)集, ,也可以獨(dú)立于這兩個(gè)對(duì)象使用。也可以獨(dú)立于這兩個(gè)對(duì)象使用。 8.2 OLB DB8.2 OLB DB和和ADO ADO 在多種語(yǔ)言中使用在多種語(yǔ)言中使用ADO 因?yàn)橐驗(yàn)锳DOADO是作為是作為ActiveXActiveX組件程序?qū)崿F(xiàn)的組件程序?qū)崿F(xiàn)的, ,所以用戶可所以用戶可以在任何支持以在任何支持COMCOM和和ActiveXActiveX組件的語(yǔ)言環(huán)境中使用組件的語(yǔ)言環(huán)境中使用ADO,ADO,比如比如Visual BasicVisual Basic、Visual C+Visual C+、ASPASP和和JavaJava等等。等等。僅以僅以VBVB為例解釋為例解釋ADOADO的典型用法。的典型用法。 8.2 OLE DB8.2 OLE DB和和ADO ADO 在多種語(yǔ)言中使用在多種語(yǔ)言中使用ADO (1 1
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中語(yǔ)文第6課語(yǔ)言的藝術(shù)第1節(jié)語(yǔ)不驚人死不休-選詞和煉句課件新人教版選修語(yǔ)言文字應(yīng)用
- 概預(yù)算第六章公路工程定額
- 增城市英語(yǔ)短文語(yǔ)法填空閱讀理解高考一輪訓(xùn)練及答案
- Windows Server網(wǎng)絡(luò)管理項(xiàng)目教程(Windows Server 2022)(微課版)10.4 拓展案例1 NAT服務(wù)器
- 江蘇省徐州市邳州市2023-2024學(xué)年九年級(jí)上學(xué)期期中抽測(cè)物理試卷(含答案解析)
- 小學(xué)五年級(jí)上冊(cè)安全教育教案 全冊(cè)
- 2024八年級(jí)英語(yǔ)上冊(cè)Unit8HowdoyoumakeabananamilkshakePeriod2SectionAGrammarFocus-3c習(xí)題課件新版人教新目標(biāo)版
- 大學(xué)水土保持學(xué)006第三章土壤侵蝕原理土壤侵蝕規(guī)律
- 語(yǔ)法高中英語(yǔ)句子成分詳細(xì)解析教你如何分解英語(yǔ)句子
- 高中物理第二章恒定電流課時(shí)13串聯(lián)電路和并聯(lián)電路課件新人教版選修3-
- 酒店客房服務(wù)員考核表
- 第1課 社會(huì)主義在中國(guó)的確立與探索【中職專用】高一思想政治《中國(guó)特色社會(huì)主義》(高教版2023基礎(chǔ)模塊)
- 2023年2022年裝修裝潢行業(yè)投融資情況匯總 去年11月份發(fā)生投資數(shù)最多報(bào)告模板
- 后勤物業(yè)集中采購(gòu)方案
- 小學(xué)英語(yǔ)繪本-中國(guó)節(jié)日
- 精益改善周培訓(xùn)課件
- 針對(duì)小學(xué)二年級(jí)語(yǔ)文教學(xué)的策略與方法
- 科技創(chuàng)新主題班會(huì)課件
- 王陽(yáng)明《知行合一》-課件
- 小學(xué)音樂學(xué)情分析報(bào)告6篇
- 6.1-質(zhì)量管理體系要求-“6.1應(yīng)對(duì)風(fēng)險(xiǎn)和機(jī)遇的措施”條文理解與實(shí)施指導(dǎo)材料(雷澤佳編制-2023)
評(píng)論
0/150
提交評(píng)論