⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oracle实例-4.htm

📁 微软数据库开发梦工场多媒体教学-oracle篇.rar,是多媒体教学的
💻 HTM
字号:
<body bgcolor="#000000">
<FONT color="#009900" 
            class=title>使用OLE对象访问Oracle数据库</FONT><font color="#009900"><BR>
</font><font color="#FFFFFF"> <FONT class=content> <BR>
OLE即对象联接和嵌入技术,使用这一技术,我们在VB中不用任何控件就可轻松访问 Oracle</A>数据库的内容。在安装了Oracle</A>的Oracle</A> 
Object for OLE后,就可以使用Oracle</A>提供的OLE对象方便地访问数据库的内容了。 <BR>
<BR>
运行下面示例程序的前提是你必须安装了Oracle</A>的客户端或Personal Oracle</A>,并且在安装时选择了Oracle</A> Object 
for OLE选项,否则你将会得到“无法建立对象”的错误信息。 <BR>
<BR>
首先,我们要建立与Oracle</A>数据库的联接,这里我们使用到两个对象OraSession对象和OraDatabase对象。OraSession对象用于管理OraDatabase对象,使用OraSession对象的OpenDatabase方法可以建立OraDatabase对象,同时建立与Oracle</A>数据库的联接以访问数据库的内容。下面的例子演示了如何使用OraSession对象和OraDatabase对象建立与Oracle</A>数据库的联接: 
<BR>
<BR>
</FONT></font><FONT class=content> 
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=0 width=580 
            borderColorLight=black border=1>
  <TBODY>
    <TR> 
      <TD class=code bgColor=#e6e6e6>Private Sub Command_Click() 
        <P>   Dim OraSession As Object</P>
        <P>  Dim OraDatabase As Object</P>
        <P>   Dim Ls_username As String, Ls_password As String, Ls_server As String</P>
        <P>   Ls_server = ""</P>
        <P>  '联接本地Oracle</A>数据库</P>
        <P>   Ls_username = "system"</P>
        <P>  '用户名为 system</P>
        <P>   Ls_password = "manager"</P>
        <P>  '密码为 manager</P>
        <P>   '建立 OraSession 对象</P>
        <P>   Set OraSession = CreateObject("Oracle</A>InProcServer.XOraSession")</P>
        <P>   '错误处理</P>
        <P>   On Error GoTo Connect_Err:</P>
        <P>  '建立OraDatabase 对象以联接到Oracle</A>数据库</P>
        <P>   Set OraDatabase = OraSession.DbOpenDatabase(Ls_server, Ls_username 
          + "/" + Ls_password, 0&amp;&amp;)</P>
        <P>   MsgBox "数据库联接成功!", vbOKOnly + vbInformation, "提示信息"</P>
        <P>   On Error GoTo 0</P>
        <P>   Exit Sub</P>
        <P>  Connect_err:</P>
        <P>   If InStr(OraSession.LastServerErrText, "ORA-01017") Then</P>
        <P>  MsgBox "无效的用户名和密码,数据库联接不成功!", vbOKOnly + vbCritical, "提示信息"</P>
        <P>   Else</P>
        <P>  MsgBox "数据库联接不成功!请查看下面的出错信息:"+Chr(13)+OraSession.LastServerErrText, 
          vbOKOnly + vbCritical, "提示信息"</P>
        <P>   End If</P>
        <P>  End Sub</P></TD>
    </TR>
  </TBODY>
</TABLE>
<font color="#FFFFFF"><BR>
建立了数据库联接后我们就可以运行相应的SQL命令对数据库的内容进行相应的操作了。对于非查询SQL命令(非SELECT命令),可以使用OraDatabase对象的ExecuteSQL方法执行,而对数据库的查询则可使用OraDatabase对象的CreateDynaset方法建立OraDynaset对象来执行查询,然后建立OraFields对象对查询结果进行检索。下面我们分别举例演示如何新建一个用户然后查询并列出DBA_USERS视图中USERNAME字段的内容,程序如下: 
<BR>
<BR>
</font> 
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=0 width=580 
            borderColorLight=black border=1>
  <TBODY>
    <TR> 
      <TD class=code bgColor=#e6e6e6> <P>Private Sub Command_Click()</P>
        <P>   Dim OraSession As Object</P>
        <P>  Dim OraDatabase As Object</P>
        <P>  Dim OraDynaset As Object</P>
        <P>  Dim OraFields As Object</P>
        <P>   Dim Ls_username As String, Ls_password As String, Ls_server As String</P>
        <P>   Dim Ls_mess As String</P>
        <P>   Dim Li_I As Integer</P>
        <P>   Ls_server = ""</P>
        <P>  '联接本地Oracle</A>数据库</P>
        <P>   Ls_username = "system"</P>
        <P>  '用户名为 system</P>
        <P>   Ls_password = "manager"</P>
        <P>  '密码为 manager</P>
        <P>   Set OraSession = CreateObject("Oracle</A>InProcServer.XOraSession")</P>
        <P>   On Error GoTo Connect_Err:</P>
        <P>   Set OraDatabase = OraSession.DbOpenDatabase(Ls_server, Ls_username 
          + "/" + Ls_password, 0&amp;&amp;)</P>
        <P>   '执行SQL命令出错后跳转到Sql_err</P>
        <P>   On Error GoTo Sql_err:</P>
        <P>   Set OraDynaset = OraDatabase.DbCreateDynaset("SELECT USERNAME FROM 
          DBA_USERS", 0&amp;&amp;)</P>
        <P>   If OraDynaset.RecordCount > 0 Then</P>
        <P>  '建立OraFields对象对查询的内容进行检索</P>
        <P>  Set OraFields = OraDynaset.Fields</P>
        <P>   Ls_mess = “用户列表:” + Chr(13)</P>
        <P>   Ls_mess = Ls_mess + OraFields(“USERNAME”).Value</P>
        <P>   for Li_I = 1 to OraDynaset.RecordCount - 1</P>
        <P>   OraDynaset. MoveNext</P>
        <P>   Ls_mess = Ls_mess + Chr(13) + OraFields(“USERNAME”).Value</P>
        <P>   Next Li_I</P>
        <P>   MsgBox Ls_mess , vbOKOnly + vbInformation, "查询结果"</P>
        <P>   Else</P>
        <P>   MsgBox "未查询到相应信息!", vbOKOnly + vbInformation, "提示信息"</P>
        <P>   End If</P>
        <P>   '创建新用户TEST,密码为TEST</P>
        <P>   OraDatabase.ExecuteSQL ("CREATE USER TEST IDENTIFIED BY TEST")</P>
        <P>   MsgBox "用户创建成功!", vbOKOnly + vbInformation, "提示信息"</P>
        <P>   Set OraDynaset = OraDatabase.DbCreateDynaset("SELECT USERNAME FROM 
          DBA_USERS", 0&amp;&amp;)</P>
        <P>   If OraDynaset.RecordCount > 0 Then</P>
        <P>  '建立OraFields对象对查询的内容进行检索</P>
        <P>  Set OraFields = OraDynaset.Fields</P>
        <P>   Ls_mess = “用户列表:” + Chr(13)</P>
        <P>   Ls_mess = Ls_mess + OraFields(“USERNAME”).Value</P>
        <P>   for Li_I = 1 to OraDynaset.RecordCount - 1</P>
        <P>   OraDynaset. MoveNext</P>
        <P>   Ls_mess = Ls_mess + Chr(13) + OraFields(“USERNAME”).Value</P>
        <P>   Next Li_I</P>
        <P>   MsgBox Ls_mess , vbOKOnly + vbInformation, "用户建立后查询结果"</P>
        <P>   Else</P>
        <P>   MsgBox "未查询到相应信息!", vbOKOnly + vbInformation, "提示信息"</P>
        <P>   End If</P>
        <P>  Exit Sub</P>
        <P>  Connect_err:</P>
        <P>   If InStr(OraSession.LastServerErrText, "ORA-01017") Then</P>
        <P>  MsgBox "无效的用户名和密码,数据库联接不成功!", vbOKOnly + vbCritical, "提示信息"</P>
        <P>   Else</P>
        <P>  MsgBox "数据库联接不成功!请查看下面的出错信息:" + Chr(13) + OraSession.LastServerErrText, 
          vbOKOnly + vbCritical, "提示信息"</P>
        <P>   End If</P>
        <P>   Exit Sub</P>
        <P>  Sql_err:</P>
        <P>   If OraDatabase.LastServerErr <> 0 Then</P>
        <P>   MsgBox "数据库操作出错!请查看下面的出错信息:" + Chr(13) + OraDatabase.LastServerErrText, 
          vbOKOnly + vbCritical, "提示信息"</P>
        <P>   End If</P>
        <P>  End Sub</P></TD>
    </TR>
  </TBODY>
</TABLE>
<font color="#FFFFFF"><BR>
以上只是简要讲述了在VB中使用Oracle</A>的OLE对象联接并访问数据库的方法,当然Oracle</A>所提供的OLE对象并不仅仅局限于上面提到的,而功能也远不止于此,有兴趣的读者可以查看Oracle</A>的随机帮助信息,用OLE对象构造出功能强大的应用程序。 
<BR>
<BR>
上述程序在Visual Basic 5.0下开发,数据库使用Personal Oracle</A> 8.0.4或 Oracle</A> 8.1.6 for 
NT并均调试通过。</font></FONT>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -