一般说来,访问远程后台数据库我们都是通过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:
'建立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