使用ADODB的構(gòu)建發(fā)展理念
ADODB 是 Active Data Objects Data Base 的簡(jiǎn)稱,它是一種 PHP 存取數(shù)據(jù)庫(kù)的中間函式組件,可以先檢查一下你程序中的字符串,暫時(shí)把他們置為””,試試看。沒(méi)準(zhǔn)就是他引起的問(wèn)題啊。
雖然 PHP 是建構(gòu) Web 系統(tǒng)強(qiáng)有力的工具,但是 PHP 存取數(shù)據(jù)庫(kù)的功能,一直未能標(biāo)準(zhǔn)化,每一種數(shù)據(jù)庫(kù),都使用另一種不同且不兼容的應(yīng)用程序接口(API)。為了填補(bǔ)這個(gè)缺憾,因此才有 ADODB 的出現(xiàn)。一旦存取數(shù)據(jù)庫(kù)的接口予以標(biāo)準(zhǔn)化,就能隱藏各種數(shù)據(jù)庫(kù)的差異,若欲轉(zhuǎn)換至其它不同的數(shù)據(jù)庫(kù),將變得十分容易。
目前 ADODB***版本是V4.62,支持的數(shù)據(jù)庫(kù)種類非常地多,例如:MySQL, PostgreSQL, Interbase, Informix, Oracle, MS SQL 7, Foxpro, Access, ADODB, Sybase, DB2 以及一般的 ODBC (其中 PostgreSQL、Informix、Sybase 的driver 是由自由軟件社群發(fā)展之后貢獻(xiàn)出來(lái)的)。
使用 ADODB ***的優(yōu)點(diǎn)之一是:不管后端數(shù)據(jù)庫(kù)如何,存取數(shù)據(jù)庫(kù)的方式都是一致的,開(kāi)發(fā)設(shè)計(jì)人員不必為了某一套數(shù)據(jù)庫(kù),而必須再學(xué)習(xí)另一套不同的存取方法,這大大減輕開(kāi)發(fā)人員的知識(shí)負(fù)擔(dān),過(guò)去的知識(shí)往后仍可繼續(xù)使用,轉(zhuǎn)移數(shù)據(jù)庫(kù)平臺(tái)時(shí),程序代碼也不必做太大的更動(dòng)。
其實(shí) ADODB 這樣的發(fā)展理念,并不是首創(chuàng)的,DBI 比 ADODB 出現(xiàn)得更早,它提供 Perl 存取數(shù)據(jù)庫(kù)時(shí),使用一致的 API 呼叫接口。相信用過(guò) Perl + DBI 的朋友,再來(lái)用 ADODB 時(shí),會(huì)有一種似曾相識(shí)的感覺(jué)。#t#
使用DataSet的另一個(gè)好處是它能被繼承用于建立強(qiáng)類型的DataSet。強(qiáng)類型DataSet的好處包括設(shè)計(jì)時(shí)的檢查和強(qiáng)類型DataSet 的Visual Studio .NET語(yǔ)句填充。當(dāng)你為DataSet固定了大綱或關(guān)系結(jié)構(gòu)時(shí),就能建立強(qiáng)類型DataSet,把行和列作為對(duì)象的屬性而不是項(xiàng)的集合。
例如,作為暴露顧客表的某一行的列名的代替,你可以暴露Customer對(duì)象的 Name屬性。強(qiáng)類型的ADODB衍生自DataSet類,因此不會(huì)犧牲DataSet的任何功能,也就是說(shuō),強(qiáng)類型的DataSet也可以是遠(yuǎn)程的,并作為數(shù)據(jù)綁定控件(例如DataGrid)的數(shù)據(jù)源提供。如果不知道大綱,也能通過(guò)使用通常的DataSet獲得好處,但是喪失了強(qiáng)類型DataSet的附加特性。