五、探索ActiveX數(shù)據(jù)對象(ADO)
在這一節(jié)里,將接觸到微軟的一個(gè)數(shù)據(jù)庫新技術(shù),也就是所謂的ActiveX數(shù)據(jù)對象(ADO)。你將學(xué)習(xí)如何安裝和使用ADO ActiveX控件、如何在你的窗體中使用綁定控件顯示數(shù)據(jù)庫記錄和字段、以及如何編寫程序代碼來管理ADO事務(wù)。另外,你還將學(xué)習(xí)使用一個(gè)特殊的工具來生成你自己的ActiveX數(shù)據(jù)對象,這個(gè)工具就是數(shù)據(jù)環(huán)境設(shè)計(jì)器(Data Environment Designer)。這些技巧將有助于獨(dú)立地管理Microsoft Access數(shù)據(jù)庫、企業(yè)內(nèi)部網(wǎng)數(shù)據(jù)庫、以及在World Wide Web上的分布式數(shù)據(jù)庫對象。
1、ADO內(nèi)幕
ADO是Microsoft處理關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫中信息的新技術(shù)(關(guān)系數(shù)據(jù)庫管理系統(tǒng)用表來操縱信息,但并非所有的數(shù)據(jù)源都遵從這一模式)。ADO沒有完全取代你在前面已經(jīng)使用過的現(xiàn)有數(shù)據(jù)庫技術(shù)——數(shù)據(jù)訪問對象(DAO),但是它確實(shí)把DAO的編程擴(kuò)展到了新的領(lǐng)域。ADO基于微軟新的被稱為OLE DB的數(shù)據(jù)訪問模式。它是專門為了給大范圍的商業(yè)數(shù)據(jù)源提供訪問而設(shè)計(jì)的,包括傳統(tǒng)的關(guān)系數(shù)據(jù)庫表、電子郵件系統(tǒng)、圖形格式、Internet資源等等。ADO比DAO所需的內(nèi)存更少,所以它更適合于大流量和大事務(wù)量的網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)。
三種數(shù)據(jù)庫編程方式
這些年以來,Microsoft已經(jīng)為Visual Basic編程人員提供了三種不同的數(shù)據(jù)庫編程方式,Visual Basic 6全面支持其中的每一種方式。請掌握這些縮寫。
DAO——數(shù)據(jù)訪問對象(DAO)方式是允許程序員操縱Microsoft Jet數(shù)據(jù)庫引擎的第一個(gè)面向?qū)ο蟮慕涌?。Jet數(shù)據(jù)庫引擎是一種用來訪問Microsoft Access表和其它數(shù)據(jù)源的記錄和字段的技術(shù)。對于單一系統(tǒng)的數(shù)據(jù)庫應(yīng)用程序來說,DAO依然很受歡迎并且非常有效;在中等規(guī)模工作組的網(wǎng)絡(luò)中,DAO也有少量的應(yīng)用。
RDO——遠(yuǎn)程數(shù)據(jù)對象(RDO)方式是提供給開放數(shù)據(jù)庫互連(ODBC)數(shù)據(jù)源的面向?qū)ο蟮慕涌?。RDO是開發(fā)Microsoft SQL Server、Oracle、和其它大型關(guān)系數(shù)據(jù)庫應(yīng)用程序的絕大多數(shù)數(shù)據(jù)庫開發(fā)者使用的對象模型。
ADO——ActiveX數(shù)據(jù)對象(ADO)方式是DAO和RDO方式的繼承者,它也有一個(gè)類似的對象模式。在ADO方式中,可編程對象展示了你的計(jì)算機(jī)上所有可獲取的本地和遠(yuǎn)程數(shù)據(jù)源。在Visual Basic 6專業(yè)版中,通過使用新的ADO控件、通過把數(shù)據(jù)對象綁定到內(nèi)置控件和ActiveX 控件、通過創(chuàng)建DHTML應(yīng)用程序、以及通過使用新的數(shù)據(jù)環(huán)境設(shè)計(jì)器等方法,你都可以訪問這些可編程數(shù)據(jù)對象。
Microsoft建議Visual Basic程序員在用Visual Basic創(chuàng)建新的數(shù)據(jù)庫應(yīng)用程序時(shí)使用ADO方法,而且Microsoft在Visual Basic 6的專業(yè)版中已經(jīng)包含了幾種專門為支持ADO而設(shè)計(jì)的特性。然而,ADO是一種剛剛出現(xiàn)的技術(shù),只有當(dāng)你牢固的掌握了前面已經(jīng)討論過的基本數(shù)據(jù)庫編程概念之后,你才能去探索它。這些概念包括:使用內(nèi)置的數(shù)據(jù)控件、用綁定控件顯示數(shù)據(jù)、用事件過程管理記錄和字段、用FlexGrid控件顯示和排序記錄等等。當(dāng)你升級到ADO時(shí),你將會以全新的角度去看待數(shù)據(jù)庫信息。
2、使用ADO ActiveX控件
按照ADO的設(shè)計(jì)方案,ADO控件沒有DatabaseName(數(shù)據(jù)庫名稱)屬性讓你直接連接到計(jì)算機(jī)中的某個(gè)數(shù)據(jù)庫文件上。取而代之的是,ADO控件包括一個(gè)ConnectionString(連接字符串)屬性讓你連接到計(jì)算機(jī)上某個(gè)ActiveX數(shù)據(jù)源。一系列的對話框會幫助你完成這種連接,并且,你可以通過使用數(shù)據(jù)環(huán)境設(shè)計(jì)器(Data Environment Designer)在已有數(shù)據(jù)源基礎(chǔ)上建立新的數(shù)據(jù)對象的方法來定制連接過程。(本課后面你就會學(xué)到如何完成這項(xiàng)任務(wù))。
一旦你理解了ADO和DAO在實(shí)際應(yīng)用中的區(qū)別,你就會發(fā)現(xiàn)ADO控件與內(nèi)置的數(shù)據(jù)(Data)控件十分的相似。在下面這部分中,將學(xué)習(xí)如何將ADO控件添加到工具箱中、如何設(shè)置ConnectionString(連接字符串)屬性、以及如何在你的窗體中用幾個(gè)綁定控件顯示數(shù)據(jù)庫記錄。你也會掌握ADO程序代碼的基本用法。
使用ADO ActiveX控件的基本步驟如下:
安裝ADO控件
ADO控件是個(gè)ActiveX控件,在程序中使用該控件之前,必須首先把它添加到工具箱中(Microsoft ADO Data Control 6.0 )。
創(chuàng)建ADO對象并綁定控件
單擊工具箱中的ADO控件,在窗體上創(chuàng)建一個(gè)較小的矩形ADO對象。
就像前面內(nèi)容中使用的數(shù)據(jù)(Data)控件一樣,ADO控件用四個(gè)箭頭創(chuàng)建了數(shù)據(jù)庫的導(dǎo)航裝置。程序運(yùn)行時(shí),當(dāng)此對象可見并且連接到適當(dāng)?shù)臄?shù)據(jù)庫后,你就可以單擊左面的箭頭移動(dòng)到數(shù)據(jù)庫的第一條記錄,右面的箭頭移動(dòng)到數(shù)據(jù)庫的后一條記錄,中間兩個(gè)箭頭讓你分別移動(dòng)到前一條記錄或后一條記錄。
向窗體中添加兩個(gè)文本框控件,用它們來顯示數(shù)據(jù)庫中的兩個(gè)字段(綁定控件)。
創(chuàng)建數(shù)據(jù)源名稱
如果使用的是Data(數(shù)據(jù))控件,只需要簡單地把數(shù)據(jù)控件的DatabaseName屬性設(shè)置為你系統(tǒng)中的一個(gè)合法數(shù)據(jù)庫的路徑名稱,就可以把它連接到數(shù)據(jù)庫上了。但是,ADO的設(shè)計(jì)者為了將來的靈活性,要求完成更多的預(yù)處理步驟。這需要通過創(chuàng)建一個(gè)ActiveX數(shù)據(jù)對象來描述將要連接到的數(shù)據(jù)庫記錄。當(dāng)創(chuàng)建數(shù)據(jù)對象時(shí),可以有三個(gè)選項(xiàng):你可以創(chuàng)建一個(gè)OLE DB文件;也可以創(chuàng)建一個(gè)ODBC數(shù)據(jù)源名稱(DSN)文件;還可以建立一個(gè)OLE DB連接字符串。數(shù)據(jù)環(huán)境設(shè)計(jì)器(Data Environment Designer)正是為幫助你創(chuàng)建ActiveX數(shù)據(jù)對象而專門設(shè)計(jì)的(在本課后面部分你將會試一試這個(gè)設(shè)計(jì)器)。當(dāng)然,你也可以通過使用ADO控件的ConnectionString屬性來創(chuàng)建所需的文件。
在這一節(jié)里,將接觸到微軟的一個(gè)數(shù)據(jù)庫新技術(shù),也就是所謂的ActiveX數(shù)據(jù)對象(ADO)。你將學(xué)習(xí)如何安裝和使用ADO ActiveX控件、如何在你的窗體中使用綁定控件顯示數(shù)據(jù)庫記錄和字段、以及如何編寫程序代碼來管理ADO事務(wù)。另外,你還將學(xué)習(xí)使用一個(gè)特殊的工具來生成你自己的ActiveX數(shù)據(jù)對象,這個(gè)工具就是數(shù)據(jù)環(huán)境設(shè)計(jì)器(Data Environment Designer)。這些技巧將有助于獨(dú)立地管理Microsoft Access數(shù)據(jù)庫、企業(yè)內(nèi)部網(wǎng)數(shù)據(jù)庫、以及在World Wide Web上的分布式數(shù)據(jù)庫對象。
1、ADO內(nèi)幕
ADO是Microsoft處理關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫中信息的新技術(shù)(關(guān)系數(shù)據(jù)庫管理系統(tǒng)用表來操縱信息,但并非所有的數(shù)據(jù)源都遵從這一模式)。ADO沒有完全取代你在前面已經(jīng)使用過的現(xiàn)有數(shù)據(jù)庫技術(shù)——數(shù)據(jù)訪問對象(DAO),但是它確實(shí)把DAO的編程擴(kuò)展到了新的領(lǐng)域。ADO基于微軟新的被稱為OLE DB的數(shù)據(jù)訪問模式。它是專門為了給大范圍的商業(yè)數(shù)據(jù)源提供訪問而設(shè)計(jì)的,包括傳統(tǒng)的關(guān)系數(shù)據(jù)庫表、電子郵件系統(tǒng)、圖形格式、Internet資源等等。ADO比DAO所需的內(nèi)存更少,所以它更適合于大流量和大事務(wù)量的網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)。
三種數(shù)據(jù)庫編程方式
這些年以來,Microsoft已經(jīng)為Visual Basic編程人員提供了三種不同的數(shù)據(jù)庫編程方式,Visual Basic 6全面支持其中的每一種方式。請掌握這些縮寫。
DAO——數(shù)據(jù)訪問對象(DAO)方式是允許程序員操縱Microsoft Jet數(shù)據(jù)庫引擎的第一個(gè)面向?qū)ο蟮慕涌?。Jet數(shù)據(jù)庫引擎是一種用來訪問Microsoft Access表和其它數(shù)據(jù)源的記錄和字段的技術(shù)。對于單一系統(tǒng)的數(shù)據(jù)庫應(yīng)用程序來說,DAO依然很受歡迎并且非常有效;在中等規(guī)模工作組的網(wǎng)絡(luò)中,DAO也有少量的應(yīng)用。
RDO——遠(yuǎn)程數(shù)據(jù)對象(RDO)方式是提供給開放數(shù)據(jù)庫互連(ODBC)數(shù)據(jù)源的面向?qū)ο蟮慕涌?。RDO是開發(fā)Microsoft SQL Server、Oracle、和其它大型關(guān)系數(shù)據(jù)庫應(yīng)用程序的絕大多數(shù)數(shù)據(jù)庫開發(fā)者使用的對象模型。
ADO——ActiveX數(shù)據(jù)對象(ADO)方式是DAO和RDO方式的繼承者,它也有一個(gè)類似的對象模式。在ADO方式中,可編程對象展示了你的計(jì)算機(jī)上所有可獲取的本地和遠(yuǎn)程數(shù)據(jù)源。在Visual Basic 6專業(yè)版中,通過使用新的ADO控件、通過把數(shù)據(jù)對象綁定到內(nèi)置控件和ActiveX 控件、通過創(chuàng)建DHTML應(yīng)用程序、以及通過使用新的數(shù)據(jù)環(huán)境設(shè)計(jì)器等方法,你都可以訪問這些可編程數(shù)據(jù)對象。
Microsoft建議Visual Basic程序員在用Visual Basic創(chuàng)建新的數(shù)據(jù)庫應(yīng)用程序時(shí)使用ADO方法,而且Microsoft在Visual Basic 6的專業(yè)版中已經(jīng)包含了幾種專門為支持ADO而設(shè)計(jì)的特性。然而,ADO是一種剛剛出現(xiàn)的技術(shù),只有當(dāng)你牢固的掌握了前面已經(jīng)討論過的基本數(shù)據(jù)庫編程概念之后,你才能去探索它。這些概念包括:使用內(nèi)置的數(shù)據(jù)控件、用綁定控件顯示數(shù)據(jù)、用事件過程管理記錄和字段、用FlexGrid控件顯示和排序記錄等等。當(dāng)你升級到ADO時(shí),你將會以全新的角度去看待數(shù)據(jù)庫信息。
2、使用ADO ActiveX控件
按照ADO的設(shè)計(jì)方案,ADO控件沒有DatabaseName(數(shù)據(jù)庫名稱)屬性讓你直接連接到計(jì)算機(jī)中的某個(gè)數(shù)據(jù)庫文件上。取而代之的是,ADO控件包括一個(gè)ConnectionString(連接字符串)屬性讓你連接到計(jì)算機(jī)上某個(gè)ActiveX數(shù)據(jù)源。一系列的對話框會幫助你完成這種連接,并且,你可以通過使用數(shù)據(jù)環(huán)境設(shè)計(jì)器(Data Environment Designer)在已有數(shù)據(jù)源基礎(chǔ)上建立新的數(shù)據(jù)對象的方法來定制連接過程。(本課后面你就會學(xué)到如何完成這項(xiàng)任務(wù))。
一旦你理解了ADO和DAO在實(shí)際應(yīng)用中的區(qū)別,你就會發(fā)現(xiàn)ADO控件與內(nèi)置的數(shù)據(jù)(Data)控件十分的相似。在下面這部分中,將學(xué)習(xí)如何將ADO控件添加到工具箱中、如何設(shè)置ConnectionString(連接字符串)屬性、以及如何在你的窗體中用幾個(gè)綁定控件顯示數(shù)據(jù)庫記錄。你也會掌握ADO程序代碼的基本用法。
使用ADO ActiveX控件的基本步驟如下:
安裝ADO控件
ADO控件是個(gè)ActiveX控件,在程序中使用該控件之前,必須首先把它添加到工具箱中(Microsoft ADO Data Control 6.0 )。
創(chuàng)建ADO對象并綁定控件
單擊工具箱中的ADO控件,在窗體上創(chuàng)建一個(gè)較小的矩形ADO對象。
就像前面內(nèi)容中使用的數(shù)據(jù)(Data)控件一樣,ADO控件用四個(gè)箭頭創(chuàng)建了數(shù)據(jù)庫的導(dǎo)航裝置。程序運(yùn)行時(shí),當(dāng)此對象可見并且連接到適當(dāng)?shù)臄?shù)據(jù)庫后,你就可以單擊左面的箭頭移動(dòng)到數(shù)據(jù)庫的第一條記錄,右面的箭頭移動(dòng)到數(shù)據(jù)庫的后一條記錄,中間兩個(gè)箭頭讓你分別移動(dòng)到前一條記錄或后一條記錄。
向窗體中添加兩個(gè)文本框控件,用它們來顯示數(shù)據(jù)庫中的兩個(gè)字段(綁定控件)。
創(chuàng)建數(shù)據(jù)源名稱
如果使用的是Data(數(shù)據(jù))控件,只需要簡單地把數(shù)據(jù)控件的DatabaseName屬性設(shè)置為你系統(tǒng)中的一個(gè)合法數(shù)據(jù)庫的路徑名稱,就可以把它連接到數(shù)據(jù)庫上了。但是,ADO的設(shè)計(jì)者為了將來的靈活性,要求完成更多的預(yù)處理步驟。這需要通過創(chuàng)建一個(gè)ActiveX數(shù)據(jù)對象來描述將要連接到的數(shù)據(jù)庫記錄。當(dāng)創(chuàng)建數(shù)據(jù)對象時(shí),可以有三個(gè)選項(xiàng):你可以創(chuàng)建一個(gè)OLE DB文件;也可以創(chuàng)建一個(gè)ODBC數(shù)據(jù)源名稱(DSN)文件;還可以建立一個(gè)OLE DB連接字符串。數(shù)據(jù)環(huán)境設(shè)計(jì)器(Data Environment Designer)正是為幫助你創(chuàng)建ActiveX數(shù)據(jù)對象而專門設(shè)計(jì)的(在本課后面部分你將會試一試這個(gè)設(shè)計(jì)器)。當(dāng)然,你也可以通過使用ADO控件的ConnectionString屬性來創(chuàng)建所需的文件。