【文章內(nèi)容簡介】
ADO的穩(wěn)定性,并且讓 ADO 能夠存取更多種類的資料來源。 ADO 的由來必須從 Microsoft 數(shù)據(jù)存取技術發(fā)展的歷史說起。 1992 年 Microsoft 和 Sybase、 Digital 共同制定了 ODBC 標準,以單一的 ODBC API 來存取各種不同的數(shù)據(jù)庫。隨后 ODBC 獲得了許多數(shù)據(jù)庫廠商和 ThirdParty 的支持而逐漸成為標準的數(shù)據(jù)存取技術。不過 ODBC僅支持關系數(shù)據(jù)庫,以及傳統(tǒng)的數(shù)據(jù)庫,并且只能夠以 C/C++語言 API 形式提供服務,因而無法符合日 漸復雜的數(shù)據(jù)存取應用,也無法讓稿本語言使用。 1993 年, Microsoft 為了能存取 Access 數(shù)據(jù)庫,使用了 OLE Automation 技術封裝了 Jet Engine,被稱為 Data Access Object (DAO)。它可支持 xBase 的數(shù)據(jù)庫和 Excel 文件,并且能夠結合 ODBC 存取數(shù)據(jù)庫。它在存取 Access 數(shù)據(jù)庫時很有效率,但在存取其他數(shù)據(jù)庫時速度很慢。 由于 DAO 結合 ODBC 存取關系數(shù)據(jù)庫時效率不好,而 ODBC API 是非常復雜的 API,在1995 年 Microsoft 同樣以 OLE Automation 技術直接封裝 ODBC。這種技術就是 Remote Data Object( RDO)。通過 RDO, VB 和稿本語言也能夠存取各種關系數(shù)據(jù)庫。 但是隨著數(shù)據(jù)來源日益復雜,現(xiàn)在的應用程序很可能需要從不同的數(shù)據(jù)源來區(qū)的數(shù)據(jù),加以處理,再把處理過的資料輸出到另一個數(shù)據(jù)來源中。更麻煩的是這些數(shù)據(jù)來源可能不是傳統(tǒng)的關系數(shù)據(jù)庫,而很可能為 Excel 檔案, Email 等。 Microsoft 為了讓應用程序能夠以統(tǒng)一的方式存取不同的數(shù)據(jù)源,在 1997 年提出 Universal Data Access 架構, UDA 是以 COM 技術為核心,以 OLEDB 作為技術的骨架,它是操作系統(tǒng)層次的軟件。 OLEDB 定義了統(tǒng)一的COM 界面作為存取各類數(shù)據(jù)源的標準,并且封裝在一組 COM 物件中,通過 OLEDB,我們就可以使用統(tǒng)一的方式來存取各種數(shù)據(jù)。 但是由于 OLEDB 在使用上非常復雜,需要有較高的技巧才可以存取資料。為了解決這個問題,并且讓 VB 和稿本語言也能夠通過 OLEDB 存取各種數(shù)據(jù)來源。 Microsoft 同樣用 COM技術封裝了 OLEDB 成為 ADO 物件,并大幅度簡化了數(shù)據(jù)的存取工作,有利于提高生產(chǎn)力,這也是我們選擇 ADO 作為數(shù)據(jù)存取技 術的原因。 下圖為 Microsoft 數(shù)據(jù)存取技術的架構圖。 Application DAO RDO ADO OLE DB ODBC SQL Data SQL Server Oracle Other FoxPro Jet Non SQL Data Mail Server Directory Services Other Text Video Mainframe and Legacy Data 使用 Delphi 開發(fā) ADO 程序 Delphi 提供了 ADOExpress 元件組,適當?shù)姆庋b了原生 ADO 技術,并把原生的 ADO 物件融入 Delphi 的 VCL 架構中。使得 Delphi 程序員能夠快速、高效的開發(fā) ADO 應用程序。 MS SQL Server Microsoft SQL Server 7 是高性能、客戶 /服務器方式的關系型數(shù)據(jù)庫管理系統(tǒng)( RDBMS: relational database management system)。 它經(jīng)過精心設計,支持大吞吐量的事務處理(例如聯(lián)機訂單、庫存管理、會計賬目或商品生產(chǎn)等),也能支持數(shù)據(jù)倉庫和決策支持的應用程序(例如銷售分析應用系統(tǒng)等)。 SQL Server 7 可以在基于 Microsoft Windows NT Server 網(wǎng)絡支持的任何硬件結構環(huán)境中完好的運行。另外還提供許多客戶工具和其他 Microsoft 操作系統(tǒng)的網(wǎng)絡接口。又因為 SQL Server的開發(fā)式結構,其它系統(tǒng)(如基于 UNIX 的系統(tǒng))也能夠與它進行相互操作。它的工具和接口包括開發(fā)工具、系統(tǒng)管理工具、分布式系統(tǒng)組件以及開發(fā)式開 發(fā)接口。 SQL 引擎 Transact SQL SQL Server 引擎支持廣泛的應用程序需求,如聯(lián)機事務處理和決策支持應用程序。它的決策支持功能的核心部分是 Transact SQL。在這種查詢語言下面,是支持事務處理和可恢復性功能的組件。 Microsoft SQL Server 符合美國國家標準學會的 SQL92 標準。由于 Microsoft SQL Server 對 SQL92 作了獨特的擴展,使得 Transact SQL 功能更加強大。 查詢優(yōu)化器。 在 TransactSQL 中,以節(jié)省系統(tǒng)開銷為目的的查詢優(yōu) 化器確定了訪問數(shù)據(jù)的最佳方法。它可以統(tǒng)計數(shù)據(jù)量和數(shù)據(jù)的離散趨勢,然后可以利用這些統(tǒng)計結果估算出優(yōu)化操作。利用 SQL Server 的 SHOWPLAN 功能,可以解釋執(zhí)行計劃,提出選擇改執(zhí)行計劃的原因,還可以用來調(diào)整應用程序和數(shù)據(jù)庫的設計。 可編程服務器 TransactSQL 提供編程結構,采用簡單的 SQL 程序腳本,可以大大簡化應用程序的開發(fā)。這種結構消除了網(wǎng)絡會話,因而可以顯著改善客戶 /服務器環(huán)境下的性能。 存儲過程 SQL Server 提供某些存儲過程,利用這些存儲過程,可以先將編譯后的 SQL 語句存進服務器 。另外 SQL Server 還提供擴展的存儲過程,可以讓開發(fā)人員擴展 Transact SQL 提供的編程能力,也可以訪問 SQL Server 外部的資源。 強制性的數(shù)據(jù)完整性 SQL Server 在數(shù)據(jù)自身內(nèi)部強制性實施數(shù)據(jù)完整性,保證復雜的商業(yè)法規(guī)得以遵守,還要保證數(shù)據(jù)元素之間的強制性關系得以維持。 SQL Server 采用先進的數(shù)據(jù)完整性功能。例如,存儲過程、說明性參照完整性、數(shù)據(jù)類型、約束、規(guī)則、默認值以及觸發(fā)器。 事務處理 SQLServer 可以保證事務的原子性。有了原子性,每個事務就會被看成 “非此即彼 ”( allornothing)型的,即每個事務要么執(zhí)行,要么終止。如果一個事務已確認,那么所有其效果予以保留。如果一個事務被終止,那么所有其效果將被取消。 一致性 一直性屬性保證事務不允許系統(tǒng)輸入不正確的邏輯狀態(tài),即數(shù)據(jù)在邏輯上總應該是正確的。約束和規(guī)則都忠實地進行把關,即使在系統(tǒng)失靈的情況下也是如此。 隔離性 事務之間的隔離性由 SQLS erver 自動完成。 SQL Server 可以對數(shù)據(jù)加鎖,從而使多個并發(fā)用戶對數(shù)據(jù)進行操作。 SQL Sever 可以阻止一些副作用。這些副作用可能歪曲結果 。 持久性 當一個事務被確認后, SQL Server 的持久性即可保證該事務的效果持續(xù)存在。即使系統(tǒng)失靈,其效果仍然保持。相反,如果在處理事務時系統(tǒng)失靈,那么事務將被完全取消,但對于數(shù)據(jù)則不會產(chǎn)生任何影響。 安全性 windows NT 驗證功能依賴于 “信用連接 ”( trusted connections)。這其中要用到 Windows NT的模仿功能。通過模仿功能, SQL Server 可以利用 Windows NT 用戶帳號中的安全內(nèi)容來對連接進行初始化,并檢測其中的安全標識符 (SID)是否達到了合法授權級別。當 連接到運行Windows NT 下的 SQL Server 時, Windows NT 的模仿功能和信用連接對所有的網(wǎng)絡接口(網(wǎng)庫)都實用。 對于運行在 Windows95 或 Wind