您现在的位置是:首页
>
数据库连接的五个对象 使用OLE对象访问Oracle数据库
使用OLE对象访问Oracle数据库 OLE即对象联接和嵌入技术 使用这一技术 我们在VB中不用任何控件就可轻松访问Oracle数据库的内容 在安装了Oracle的Oracle O ject fo

使用OLE对象访问Oracle数据库
OLE即对象联接和嵌入技术 使用这一技术 我们在VB中不用任何控件就可轻松访问Oracle数据库的内容 在安装了Oracle的Oracle Object for OLE后 就可以使用Oracle提供的OLE对象方便地访问数据库的内容了 运行下面示例程序的前提是你必须安装了Oracle的客户端或Personal Oracle 并且在安装时选择了Oracle Object for OLE选项 否则你将会得到 无法建立对象 的错误信息 首先 我们要建立与Oracle数据库的联接 这里我们使用到两个对象OraSession对象和OraDatabase对象 OraSession对象用于管理OraDatabase对象 使用OraSession对象的OpenDatabase方法可以建立OraDatabase对象 同时建立与Oracle数据库的联接以访问数据库的内容 下面的例子演示了如何使用OraSession对象和OraDatabase对象建立与Oracle数据库的联接 Private Sub Command_Click() Dim OraSession As Object Dim OraDatabase As Object Dim Ls_username As String Ls_password As String Ls_server As String Ls_server = 联接本地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 &&) MsgBox 数据库联接成功! vbOKOnly + vbInformation 提示信息 On Error GoTo Exit Sub Connect_err: If InStr(OraSession LastServerErrText ORA ) Then MsgBox 无效的用户名和密码 数据库联接不成功! vbOKOnly + vbCritical 提示信息 Else MsgBox 数据库联接不成功!请查看下面的出错信息 +Chr( )+OraSession LastServerErrText vbOKOnly + vbCritical 提示信息 End If End Sub 建立了数据库联接后我们就可以运行相应的SQL命令对数据库的内容进行相应的操作了 对于非查询SQL命令(非SELECT命令) 可以使用OraDatabase对象的ExecuteSQL方法执行 而对数据库的查询则可使用OraDatabase对象的CreateDynaset方法建立OraDynaset对象来执行查询 然后建立OraFields对象对查询结果进行检索 下面我们分别举例演示如何新建一个用户然后查询并列出DBA_USERS视图中USERNAME字段的内容 程序如下 Private Sub Command_Click() Dim OraSession As Object Dim OraDatabase As Object Dim OraDynaset As Object Dim OraFields As Object Dim Ls_username As String Ls_password As String Ls_server As String Dim Ls_mess As String Dim Li_I As Integer Ls_server = 联接本地Oracle数据库 Ls_username = system 用户名为 system Ls_password = manager 密码为 manager Set OraSession = CreateObject( OracleInProcServer XOraSession ) On Error GoTo Connect_Err: Set OraDatabase = OraSession DbOpenDatabase(Ls_server Ls_username + / + Ls_password &&) 执行SQL命令出错后跳转到Sql_err On Error GoTo Sql_err: Set OraDynaset = OraDatabase DbCreateDynaset( SELECT USERNAME FROM DBA_USERS &&) If OraDynaset RecordCount > Then 建立OraFields对象对查询的内容进行检索 Set OraFields = OraDynaset Fields Ls_mess = 用户列表 + Chr( ) Ls_mess = Ls_mess + OraFields( USERNAME ) Value for Li_I = to OraDynaset RecordCount OraDynaset MoveNext Ls_mess = Ls_mess + Chr( ) + OraFields( USERNAME ) Value Next Li_I MsgBox Ls_mess vbOKOnly + vbInformation 查询结果 Else MsgBox 未查询到相应信息! vbOKOnly + vbInformation 提示信息 End If 创建新用户TEST 密码为TEST OraDatabase ExecuteSQL ( CREATE USER TEST IDENTIFIED BY TEST ) MsgBox 用户创建成功! vbOKOnly + vbInformation 提示信息 Set OraDynaset = OraDatabase DbCreateDynaset( SELECT USERNAME FROM DBA_USERS &&) If OraDynaset RecordCount > Then 建立OraFields对象对查询的内容进行检索 Set OraFields = OraDynaset Fields Ls_mess = 用户列表 + Chr( ) Ls_mess = Ls_mess + OraFields( USERNAME ) Value for Li_I = to OraDynaset RecordCount OraDynaset MoveNext Ls_mess = Ls_mess + Chr( ) + OraFields( USERNAME ) Value Next Li_I MsgBox Ls_mess vbOKOnly + vbInformation 用户建立后查询结果 Else MsgBox 未查询到相应信息! vbOKOnly + vbInformation 提示信息 End If Exit Sub Connect_err: If InStr(OraSession LastServerErrText ORA ) Then MsgBox 无效的用户名和密码 数据库联接不成功! vbOKOnly + vbCritical 提示信息 Else MsgBox 数据库联接不成功!请查看下面的出错信息 + Chr( ) + OraSession LastServerErrText vbOKOnly + vbCritical 提示信息 End If Exit Sub Sql_err: If OraDatabase LastServerErr <> Then MsgBox 数据库操作出错!请查看下面的出错信息 + Chr( ) + OraDatabase LastServerErrText vbOKOnly + vbCritical 提示信息 End If End Sub 以上只是简要讲述了在VB中使用Oracle的OLE对象联接并访问数据库的方法 当然Oracle所提供的OLE对象并不仅仅局限于上面提到的 而功能也远不止于此 有兴趣的读者可以查看Oracle的随机帮助信息 用OLE对象构造出功能强大的应用程序 上述程序在Visual Basic 下开发 数据库使用Personal Oracle 或Oracle for NT并均调试通过 lishixinzhi/Article/program/Oracle/201311/16539 很赞哦! (1082)