数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

使用OLE对象访问Oracle数据库


发布日期:2019年12月28日
 
使用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(OracleInProcServerXOraSession)

错误处理

On Error GoTo Connect_Err:

建立OraDatabase 对象以联接到Oracle数据库

Set OraDatabase = OraSessionDbOpenDatabase(Ls_server Ls_username + / + Ls_password &&)

MsgBox 数据库联接成功! vbOKOnly + vbInformation 提示信息

On Error GoTo

Exit Sub

Connect_err:

If InStr(OraSessionLastServerErrText ORA) Then

MsgBox 无效的用户名和密码数据库联接不成功! vbOKOnly + vbCritical 提示信息

Else

MsgBox 数据库联接不成功!请查看下面的出错信息+Chr()+OraSessionLastServerErrText 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(OracleInProcServerXOraSession)

On Error GoTo Connect_Err:

Set OraDatabase = OraSessionDbOpenDatabase(Ls_server Ls_username + / + Ls_password &&)

执行SQL命令出错后跳转到Sql_err

On Error GoTo Sql_err:

Set OraDynaset = OraDatabaseDbCreateDynaset(SELECT USERNAME FROM DBA_USERS &&)

If OraDynasetRecordCount > Then

建立OraFields对象对查询的内容进行检索

Set OraFields = OraDynasetFields

Ls_mess = 用户列表 + Chr()

Ls_mess = Ls_mess + OraFields(USERNAME)Value

for Li_I = to OraDynasetRecordCount

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

OraDatabaseExecuteSQL (CREATE USER TEST IDENTIFIED BY TEST)

MsgBox 用户创建成功! vbOKOnly + vbInformation 提示信息

Set OraDynaset = OraDatabaseDbCreateDynaset(SELECT USERNAME FROM DBA_USERS &&)

If OraDynasetRecordCount > Then

建立OraFields对象对查询的内容进行检索

Set OraFields = OraDynasetFields

Ls_mess = 用户列表 + Chr()

Ls_mess = Ls_mess + OraFields(USERNAME)Value

for Li_I = to OraDynasetRecordCount

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(OraSessionLastServerErrText ORA) Then

MsgBox 无效的用户名和密码数据库联接不成功! vbOKOnly + vbCritical 提示信息

Else

MsgBox 数据库联接不成功!请查看下面的出错信息 + Chr() + OraSessionLastServerErrText vbOKOnly + vbCritical 提示信息

End If

Exit Sub

Sql_err:

If OraDatabaseLastServerErr <> Then

MsgBox 数据库操作出错!请查看下面的出错信息 + Chr() + OraDatabaseLastServerErrText vbOKOnly + vbCritical 提示信息

End If

End Sub

以上只是简要讲述了在VB中使用Oracle的OLE对象联接并访问数据库的方法当然Oracle所提供的OLE对象并不仅仅局限于上面提到的而功能也远不止于此有兴趣的读者可以查看Oracle的随机帮助信息用OLE对象构造出功能强大的应用程序

上述程序在Visual Basic 下开发数据库使用Personal Oracle 或Oracle for NT并均调试通过

上一篇:OracleIBM化对手为伙伴 结盟共创IACC

下一篇:使用OracleDataMining解决业务问题