一般說來,訪問遠程後台資料庫我們都是通過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