熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

使用OLE對象訪問Oracle數據庫

2022-06-13   來源: 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並均調試通過
  
  

From:http://tw.wingwit.com/Article/program/Oracle/201311/16539.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.