一般說來,訪問遠程後台數據庫我們都是通過ODBC來完成的。但是,ODBC有一個致命的缺點——速度慢。事實上,對於ORACLE數據庫,除了ODBC,我們還可以利用ORACLE本身所提供的OLE對象(Oracle Objects for OLE)來實現快速訪問有關數據庫。
在ORACLE V8中,Oracle Objects for OLE(以下簡稱OO)為常用開發工具提供了一整套與數據庫簡單相連的通訊訪問方式,它支持各種支持VB自定義控件或OLE自動化(OLE Automation)的開發環境。OO主要由三部分組成:
l ORACLE對象服務器(the Oracle Object Server)
l ORACLE數據訪問控件(the Oracle Data Control)
l C++類庫(the Oracle Objects for OLE C++ Class Library)
OO主要包括對象和用途:
OraClient 定義工作域,並管理會話集。
OraSession 管理數據庫對象集,並提供共享式連接和事務控制。
OraConnection 與ORACLE數據之間建立的連接。
OraDatabase 對ORACLE數據庫的一個“虛”登錄。
OraParamArray 參數組。
OraParameter 綁定在SQL語句或PL/SQL塊中的有關變量。
OraDynaset 利用SELECT語句所得到的記錄。
OraSQLStmt 預定義的單獨的一句SQL語句。
OraField OraDynaset對象中的列(Column)。
Private Sub Command_Click()
Ls_server = "baoprog"
'聯接本地Oracle數據庫
Ls_username = "system"
'用戶名為 system
Ls_password = "manager"
'密碼為 manager
'建立 OraSession 對象
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
'錯誤處理
On Error GoTo Connect_err:
'URL:http://www.bianceng.cn/Programming/vb/201410/45788.htm
'建立OraDatabase 對象以聯接到Oracle數據庫
Set OraDatabase = OraSession.DbOpenDatabase(Ls_server, Ls_username + "/" + Ls_password, 0&)
On Error GoTo 0
Exit Sub
Connect_err:
If InStr(OraSession.LastServerErrText, "ORA-01017") Then
MsgBox "無效的用戶名和密碼,數據庫聯接不成功!", vbOKOnly + vbCritical, "提示信息"
Else
MsgBox "數據庫聯接不成功!請查看下面的出錯信息:" + Chr(13) + OraSession.LastServerErrText, vbOKOnly + vbCritical, "提示信息"
End If
End Sub