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