| 導購 | 订阅 | 在线投稿
分享
 
 
 

使用OLE對象訪問Oracle數據庫

來源:互聯網  2008-05-31 22:07:30  評論

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, 0&&)

MsgBox "數據庫聯接成功!", vbOKOnly + vbInformation, "提示信息"

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

建立了數據庫聯接後我們就可以運行相應的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, 0&&)

'執行SQL命令出錯後跳轉到Sql_err

On Error GoTo Sql_err:

Set OraDynaset = OraDatabase.DbCreateDynaset("SELECT USERNAME FROM DBA_USERS", 0&&)

If OraDynaset.RecordCount > 0 Then

'建立OraFields對象對查詢的內容進行檢索

Set OraFields = OraDynaset.Fields

Ls_mess = 「用戶列表:」 + Chr(13)

Ls_mess = Ls_mess + OraFields(「USERNAME」).Value

for Li_I = 1 to OraDynaset.RecordCount - 1

OraDynaset. MoveNext

Ls_mess = Ls_mess + Chr(13) + 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", 0&&)

If OraDynaset.RecordCount > 0 Then

'建立OraFields對象對查詢的內容進行檢索

Set OraFields = OraDynaset.Fields

Ls_mess = 「用戶列表:」 + Chr(13)

Ls_mess = Ls_mess + OraFields(「USERNAME」).Value

for Li_I = 1 to OraDynaset.RecordCount - 1

OraDynaset. MoveNext

Ls_mess = Ls_mess + Chr(13) + 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-01017") Then

MsgBox "無效的用戶名和密碼,數據庫聯接不成功!", vbOKOnly + vbCritical, "提示信息"

Else

MsgBox "數據庫聯接不成功!請查看下面的出錯信息:" + Chr(13) + OraSession.LastServerErrText, vbOKOnly + vbCritical, "提示信息"

End If

Exit Sub

Sql_err:

If OraDatabase.LastServerErr <> 0 Then

MsgBox "數據庫操作出錯!請查看下面的出錯信息:" + Chr(13) + OraDatabase.LastServerErrText, vbOKOnly + vbCritical, "提示信息"

End If

End Sub

以上只是簡要講述了在VB中使用Oracle的OLE對象聯接並訪問數據庫的方法,當然Oracle所提供的OLE對象並不僅僅局限于上面提到的,而功能也遠不止于此,有愛好的讀者可以查看Oracle的隨機幫助信息,用OLE對象構造出功能強大的應用程序。

上述程序在Visual Basic 5.0下開發,數據庫使用Personal Oracle 8.0.4或Oracle 8.1.6 for NT並均調試通過。

  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, 0&&)         MsgBox "數據庫聯接成功!", vbOKOnly + vbInformation, "提示信息"         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         建立了數據庫聯接後我們就可以運行相應的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, 0&&)         '執行SQL命令出錯後跳轉到Sql_err         On Error GoTo Sql_err:         Set OraDynaset = OraDatabase.DbCreateDynaset("SELECT USERNAME FROM DBA_USERS", 0&&)         If OraDynaset.RecordCount > 0 Then        '建立OraFields對象對查詢的內容進行檢索        Set OraFields = OraDynaset.Fields         Ls_mess = 「用戶列表:」 + Chr(13)         Ls_mess = Ls_mess + OraFields(「USERNAME」).Value         for Li_I = 1 to OraDynaset.RecordCount - 1         OraDynaset. MoveNext         Ls_mess = Ls_mess + Chr(13) + 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", 0&&)         If OraDynaset.RecordCount > 0 Then        '建立OraFields對象對查詢的內容進行檢索        Set OraFields = OraDynaset.Fields         Ls_mess = 「用戶列表:」 + Chr(13)         Ls_mess = Ls_mess + OraFields(「USERNAME」).Value         for Li_I = 1 to OraDynaset.RecordCount - 1         OraDynaset. MoveNext         Ls_mess = Ls_mess + Chr(13) + 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-01017") Then        MsgBox "無效的用戶名和密碼,數據庫聯接不成功!", vbOKOnly + vbCritical, "提示信息"         Else        MsgBox "數據庫聯接不成功!請查看下面的出錯信息:" + Chr(13) + OraSession.LastServerErrText, vbOKOnly + vbCritical, "提示信息"         End If         Exit Sub        Sql_err:         If OraDatabase.LastServerErr <> 0 Then         MsgBox "數據庫操作出錯!請查看下面的出錯信息:" + Chr(13) + OraDatabase.LastServerErrText, vbOKOnly + vbCritical, "提示信息"         End If        End Sub         以上只是簡要講述了在VB中使用Oracle的OLE對象聯接並訪問數據庫的方法,當然Oracle所提供的OLE對象並不僅僅局限于上面提到的,而功能也遠不止于此,有愛好的讀者可以查看Oracle的隨機幫助信息,用OLE對象構造出功能強大的應用程序。      上述程序在Visual Basic 5.0下開發,數據庫使用Personal Oracle 8.0.4或Oracle 8.1.6 for NT並均調試通過。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有