|
一般來說,VB訪問遠(yuǎn)程后臺(tái)數(shù)據(jù)庫有好多方法可以實(shí)現(xiàn),目前使用的比較多的方法有:ODBC(開放數(shù)據(jù)庫互聯(lián)),OO4O(Oracle的OLE對(duì)象) 。
由于ODBC技術(shù)有一個(gè)致命的缺點(diǎn)—速度慢。OO4O是一種進(jìn)程中的OLE服務(wù)器,但是它不使用ODBC標(biāo)準(zhǔn), 它利用ORACLE的調(diào)用接口來與ORACLE會(huì)話,這樣一來,它就可以克服ODBC的速度慢的缺點(diǎn)了。 正是由于OO4O訪問ORACLE的這種特殊優(yōu)勢,目前基于ORACLE數(shù)據(jù)庫的用VB程序語言開發(fā)的應(yīng)用系統(tǒng)基本上都是通過OO4O來實(shí)現(xiàn)的。 2. OO4O簡介 2.1 VB 中用到的OO4O的重要的組件( OO4O Component Used in VB) Oracle Data Control (在建立VB工程時(shí),必須把它們加載到VB的引用中) 2.2 OO4O主要對(duì)象,用途及對(duì)象的建立: ⑴ OraClient: 定義工作域,并管理會(huì)話集。和DAO的DBEngine建立方式一樣, OraClient對(duì)象通常系統(tǒng)會(huì)根據(jù)需要而自動(dòng)建立。 ⑵ OraSession: VB應(yīng)用程序和ORACLE服務(wù)器的接口,每個(gè)應(yīng)用程序會(huì)建立自己的OraSession對(duì)象。OraSession對(duì)象是屬于應(yīng)用程序中最上層的對(duì)象,它以通過CreateObject方法(method)來建立,建立方法為: Set OraSession = CreateObject( "OracleInProcServer.XoraSession ")。 用OaSession = nothing釋放OraSession對(duì)象。 ⑶ OraConnection: 是OraSession與ORACLE數(shù)據(jù)之間建立的連接。當(dāng)建立OraDatabase對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)產(chǎn)生一個(gè)OraConnection對(duì)象。反之,當(dāng)用戶或應(yīng)用程序與數(shù)據(jù)庫失去連接,則OraConnection對(duì)象也會(huì)自動(dòng)被釋放(free)。 ⑷ OraDatabase: 對(duì)ORACLE數(shù)據(jù)庫的一個(gè)“虛”登錄。其登錄數(shù)據(jù)庫的方法如下: Set OraDatabase = OraSession.DbOpenDatabase( "數(shù)據(jù)庫別名 ", "用戶名/密碼 ",0) ⑸ OraParameter: 綁定在SQL語句或PL/SQL塊中的有關(guān)變量。OraParameter對(duì)象間接的通過OraDatabase對(duì)象的OraParameters數(shù)據(jù)集合(collection)來增加、存取或刪除某個(gè)變量。 ⑹ OraDynaset: 利用SELECT語句所得到的記錄。在VB中如果想建立一個(gè)OraDynaset對(duì)象可以使用OraDatabase的DbCreateDynaset或CreateDynaset等方法,建立方法為: Set OraDynaset = OraDatabase.DbCreateDynaset( "select * from dual ",0) 。 ⑺ OraSQLStmt: 預(yù)定義的單獨(dú)的一句SQL語句。ORACLE中對(duì)數(shù)據(jù)庫的操作基本上都是基于SQL來實(shí)現(xiàn)的。通過OO4O對(duì)ORACLE的訪問,也得考慮怎樣有效利用SQL來實(shí)現(xiàn).前面已經(jīng)提到過SELECT的查詢可以利用OraDynaset 來實(shí)現(xiàn)表形式的獲得,但是INSERT,UPDATE這樣的SQL最好通過OraSQLStmt 來實(shí)現(xiàn)。 ⑻ OraField: OraDynaset對(duì)象中的一列(Column)或數(shù)據(jù)項(xiàng)目(data item)。OraField對(duì)象是間接從OraDynaset對(duì)象的OraFields數(shù)據(jù)集合(collection)取得其中的一個(gè)字段的數(shù)據(jù),其數(shù)據(jù)類型通常為萬能變量(Variant)。 |
|
|