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