Oracle 10g不但支持多種程序,如Java、.NET、.Com和Win32,而且確保所有的程序開(kāi)發(fā)都可以使用到Oracle高級(jí)的數(shù)據(jù)庫(kù)特性。也就是說(shuō),Oracle提供良好的開(kāi)發(fā)環(huán)境,以支持各種應(yīng)用程序的開(kāi)發(fā),并且,每個(gè)數(shù)據(jù)存取的驅(qū)動(dòng)程序都經(jīng)過(guò)良好的設(shè)計(jì),以達(dá)到最佳的存取功能。對(duì)于Windows的開(kāi)發(fā)環(huán)境而言,最常使用的數(shù)據(jù)存取方式有.NET和.Com兩種,分別介紹如下。
??? .NET數(shù)據(jù)存取方式有三種,如圖13-1所示。第一種是程序語(yǔ)言(例如,ASP.NET等)通過(guò)OLE DB.NET調(diào)用Oracle OLE DB,再存取Oracle數(shù)據(jù)庫(kù);第二種是程序語(yǔ)言通過(guò)ODBC.NET調(diào)用Oracle ODBC,再存取Oracle數(shù)據(jù)庫(kù);第三種是程序語(yǔ)言通過(guò)Oracle Data Provider for.NET直接存取Oracle數(shù)據(jù)庫(kù)。
另一種數(shù)據(jù)存取的方式為.Com,如圖13-2所示。
??? .Com數(shù)據(jù)存取的方式有三種。第一種是程序語(yǔ)言(例如,ASP.NET等)通過(guò)Oracle Objects for OLE(0040)存取Oracle數(shù)據(jù)庫(kù);第二種是程序語(yǔ)言通過(guò)ActiveX Data Objects(ADO)調(diào)用Oracle ODBC,再存取Oracle數(shù)據(jù)庫(kù);第三種是程序語(yǔ)言通過(guò)ActiveX Data Objects(ADO)調(diào)用Oracle OLE DB,再存取Oracle數(shù)據(jù)庫(kù)。另外,程序語(yǔ)言也可以通過(guò)COM Automation Feature取得Oracle數(shù)據(jù)庫(kù)的數(shù)據(jù)。
??? Oracle 10g Web數(shù)據(jù)庫(kù)的存取如同前文所述,有多種數(shù)據(jù)存取的方式。在本節(jié)中,使用的方式如圖13-3所示。
??? 首先編寫(xiě)ASP(Active Server Page)程序,通過(guò)ADO(ActiveX Data Object)訪問(wèn)ODBC(Open Database Connectivity,開(kāi)放式數(shù)據(jù)庫(kù)連接),再通過(guò)ODBC存取Oracle數(shù)據(jù)庫(kù)。
??? 在Oracle 10g Web數(shù)據(jù)庫(kù)的開(kāi)發(fā)環(huán)境中,需要完成下列各項(xiàng)工作,才能從Internet上存取Oracle 10g Web數(shù)據(jù)庫(kù),這些工作如下所示:
- 創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)
- 設(shè)置ODBC
- 設(shè)置Web Server(例如,IIS的虛擬目錄)
- ASP程序的開(kāi)發(fā)
??? 我們以本書(shū)的Misdb數(shù)據(jù)庫(kù)為例,請(qǐng)先完成前面章節(jié)中的項(xiàng)目管理,創(chuàng)建11個(gè)表,分別有EMP、depart、probuy、invoice、customer、delivery、Ord、product、stock、WIP和 salgrade表,并插入多條數(shù)據(jù)。下面,分別介紹設(shè)置ODBC、設(shè)置Web Server和開(kāi)發(fā)ASP程序。
13-2??? 設(shè)置ODBC??? ODBC的全名是Open Database Connectivity(開(kāi)放式數(shù)據(jù)庫(kù)連接),是應(yīng)用程序連接數(shù)據(jù)庫(kù)的接口。由于計(jì)算機(jī)的類(lèi)型不同,從個(gè)人計(jì)算機(jī)到大型主機(jī),都有自己處理數(shù)據(jù)的方式,ODBC則可以連接到相同或不相同的數(shù)據(jù)庫(kù)管理系統(tǒng),因此,ODBC可以給應(yīng)用程序提供相同的存取數(shù)據(jù)庫(kù)的接口,程序設(shè)計(jì)員在設(shè)計(jì)連接不同數(shù)據(jù)庫(kù)時(shí),只要處理與ODBC的連接就可以了,而不必針對(duì)不同的數(shù)據(jù)庫(kù)設(shè)計(jì)完全不同的程序。特別需要提醒的是,不同的數(shù)據(jù)庫(kù)都有自己對(duì)應(yīng)的ODBC驅(qū)動(dòng)程序,在使用不同數(shù)據(jù)庫(kù)的同時(shí),務(wù)必設(shè)置正確的ODBC驅(qū)動(dòng)程序。就像在本節(jié)中,想要連接Oracle 10g數(shù)據(jù)庫(kù),就必須設(shè)置Oracle ODBC驅(qū)動(dòng)程序,操作步驟如下:
??? (1)選擇Start→Programs→Oracle-OraDb10g_home1→Configuration and Migration Tools→Microsoft ODBC Administrator,如圖13-4所示。
??? (2)打開(kāi)ODBC Data Source Administrator,如圖13-5所示。 ?
??? (3)單擊System DSN標(biāo)簽,如圖13-6所示。
??? (4)單擊Add按鈕,出現(xiàn)如圖13-7所示的對(duì)話框。
??? (5)向下拖動(dòng)滾動(dòng)條,找到Oracle in OraDb10g_home1選項(xiàng),選擇該選項(xiàng),如圖13-8所示。
??? (6)單擊Finish按鈕,進(jìn)入Oracle ODBC Driver Configuration對(duì)話框,如圖13-9所示。
??? Data Source Name:自定義,程序調(diào)用時(shí)將使用這個(gè)名稱,請(qǐng)輸入misdbdsn。
??? TNS Service Name:Oracle TNS服務(wù)名稱,在創(chuàng)建數(shù)據(jù)庫(kù)時(shí),一般默認(rèn)TNS服務(wù)名稱與數(shù)據(jù)庫(kù)名稱相同,請(qǐng)輸入MISDB,讀者也可以自定義。
??? User ID:用戶的賬戶名稱,這里使用System賬戶來(lái)測(cè)試。
??? (7)單擊Test Connection按鈕,出現(xiàn)Oracle ODBC Driver Connect對(duì)話框,如圖13-10所示。
??? Password:請(qǐng)輸入安裝時(shí)給System設(shè)置的密碼,或自行修改后的密碼。
??? (8)單擊OK按鈕,出現(xiàn)如圖13-11所示的對(duì)話框。
??? (9)單擊OK按鈕,回到Oracle ODBC Driver Configuration對(duì)話框,如圖13-12所示。
??? (10)單擊OK按鈕,回到ODBC Data Source Administrator的System DNS選項(xiàng)卡,如圖13-13所示。
??? (11)單擊OK按鈕,完成ODBC的設(shè)置。