Oracle是世界上用得最多的數據庫之一
活動服務器網頁(ASP)是一種被廣泛用於創建動態網頁的功能強大的服務器端腳本語言
許多ASP開發人員一直在考慮
能否在開發互聯網應用
電子商務網站
互聯網管理系統時結合使用ASP和Oracle數據庫?這個問題的答案是肯定的
我們還可以使用VB訪問Oracle數據庫
在本篇文章中
我們將主要討論如何使用ASP來處理Oracle數據庫中數據的方法
在開始討論這個問題前
我們需要了解幾個背景知識
Oracle Objects for OLE就是其中之一
Oracle Objects for OLE是Oracle開發的一個中間件
它允許使用微軟的OLE標准的客戶端應用程序訪問Oracle的數據庫
也許會有讀者說
我們也可以使用ODBC訪問Oracle的數據庫
當然
可以使用ODBC訪問Oracle數據庫
但我認為
Oracle Objects for OLE比ODBC更安全
而且完全支持PL/SQL
PL/SQL是Oracle對SQL命令集的擴展
開發人員能夠利用它對非結構化的SQL命令塊進行流控制和邏輯設計
如果安裝的是Oracle
i數據庫
我相信你已經在使用Oracle Objects for OLE
如果還沒有使用Oracle Objects for OLE
可以從Oracle的網站上下載它
另外
我們還需要了解Oracle針對Visual Basic開發的二個對象和一個接口
OraSession
OraDynaset對象和OraDatabase接口
OraSession對象管理應用程序的OraDatabase
OraConnection和OraDynaset
它是由ASP的CreateObject而不是Oracle Objects for OLE創建的一個對象
OraDatabase接口向Oracle數據庫表示表現用戶對話
並為SQL
PL/SQL的執行提供方法
它們每個都有一些屬性和方法
例如
OraDynaset對象有BOF
EOF
Bookmark
Connection等屬性以及AddNew
Update
Delete
Edit
Refresh
Clone等
個方法
下面我們就開始切入主題
討論如何使用ASP處理Oracle數據庫中的數據
准備工作
我們需要什麼樣的環境和工具?
)我使用了Oracle
i
IIS
Windows
專業版作為應用程序的開發和運行環境
)在Oracle數據庫中建立一個名字為MYTABLE
或類似的表
ID (type: number) User Name(type: varchar
) Phone(type: varchar
) Email(type: varchar
)
Colin Tong
c
John White
Don Wod
數據的訪問和存取
) Instantiate OO
O Object
OraSession and interface OraDatabase for connecting to ORACLE
)初始化Oracle Objects for OLE
OraSession對象和OraDatabase接口
為連接ORACLE數據庫作准備
首先
使用CreateObject創建OraSession對象
然後通過打開一個與Oracle的連接創建OraDatabase對象
如下所示
<%
Set OraSession = CreateObject(
OracleInProcServer
XOraSession
)
Set OraDatabase = OraSession
OpenDatabase(
_
username/password
Cint(
))
%>
username
和
password
是你所使用的關系數據庫的用戶名和口令
)創建OraDynaset對象執行SQL命令
我們可以使用CreateDynaset或DbCreateDynaset創建記錄集
<%
execute SQL
Set OraDynaset = OraDatabase
DbCreateDynaset( _
select * from mytable
cint(
))
%>
)存取數據並刪除創建的對象
<%
Do While(OraDynaset
EOF = FALSE)
Response
write(OraDynaset
Fields(
ID
))
Response
write(OraDynaset
Fields(
UserName
))
others
OraDynaset
MoveNext
Loop
remove OraSession
Set OraSession = Nothing
%>
編輯數據記錄
我們將使用OraDynaset的方法實現對數據記錄的編輯
)使用SQL語句創建OraDynaset對象
<%
創建ID= fID的記錄的OraDynaset對象
Set OraDynaset = OraDatabase
CreateDynaset(_
select * from MYTABLE
where ID=
& fID
cint(
))
%>
fID是想插入更更新的記錄的ID值
)執行OraDynaset更新或添加數據記錄
<%
使用Edit方法更新ID=fID記錄的域
或使用AddNew插入一個新記錄
OraDynaset
Edit
OraDynaset
Fields(
Phone
)
Value = fPhone
OraDynaset
Update
刪除創建的對話
Set OraSession = Nothing
%>
刪除數據記錄
如果已經真正地理解了我們在上面討論的一些方法(Edit
Update和AddNew)
也許有的讀者已經知道該如何在Oracle數據庫中刪除記錄了
<%
刪除所有符合上面條件的記錄
OraDynaset
Delete
%>
在Oracle
i中搜索和更新數據記錄的代碼
)搜索
<%
RetriveRecProc
asp
使用ASP的Oracle Objects for OLE更新數據記錄
%>
<%
定義作為OLE對象的變量
Dim OraSession
Dim OraDatabase
Dim OraDynaset
創建OraSession對象
Set OraSession = CreateObject(
OracleInProcServer
XOraSession
)
通過打開Oracle數據庫的一個連接創建OraDatabase對象
一定要使用自己的用戶名和口令訪問Oracle數據庫
Set OraDatabase = OraSession
OpenDatabase(
user/password
_
Cint(
))
創建OraDynaset對象執行SQL語句
Set OraDynaset = OraDatabase
DbCreateDynaset(_
select * from mytable
cint(
))
%>
<html><body>
<H
>Retrieve All Records in MYTABLE
Table ( in Oracle)
Using oo
o</H
>
<table border=
ID=
Table
>
<%
Do While(OraDynaset
EOF = FALSE)
Response
Write(
<tr><td>
)
Response
write(OraDynaset
Fields(
ID
))
Response
Write(
</td><td>
)
Response
write(OraDynaset
Fields(
UserName
))
Response
Write(
</td><td>
)
Response
write(OraDynaset
Fields(
Phone
))
Response
Write(
</td><td>
)
Response
write(OraDynaset
Fields(
Email
))
Response
Write(
</td></tr>
)
OraDynaset
MoveNext
Loop
刪除OraSession
Set OraSession = Nothing
%>
</table>
<a javascript:window
history
go(
)
>
Back previous Page</a> |
<a > Back home Page</a>
</body></html>
)更新
<%
UpdateRecProc
asp
使用ASP的Oracle Objects for OLE更新數據記錄
%>
<%
定義作為OLE對象的變量
Dim OraSession
Dim OraDatabase
Dim OraDynaset
從提交的表格中獲取字段值
fID = request
form(
ID
)
fUserName = request
form(
UserName
)
fPhone = request
form(
Phone
)
fEmail = request
form(
Email
)
創建OraSession對象
Set OraSession = CreateObject(
OracleInProcServer
XOraSession
)
通過打開Oracle數據庫的一個連接創建OraDatabase對象
Set OraDatabase = OraSession
OpenDatabase(
user/password
_
Cint(
))
創建ID= fID的記錄的OraDynaset對象
Set OraDynaset = OraDatabase
CreateDynaset(_
select * from MYTABLE
where ID=
& fID
cint(
))
使用Edit方法更新ID=fID記錄的字段
Do While(OraDynaset
EOF = FALSE)
OraDynaset
Edit
OraDynaset
Fields(
UserName
)
Value = fUserName
OraDynaset
Fields(
Phone
)
Value = fPhone
OraDynaset
Fields(
Email
)
Value = fEmail
OraDynaset
Update
OraDynaset
MoveNext
Loop
%>
<html><body>
<H
>Update A Record in MYTABLE
Table (Oracle) Using oo
o</H
>
The record (ID=<%=fID%>) has been updated successfully!<br>
You can view the result <a > here</a>
<p>
<a javascript:window
history
go(
)
> Back previous Page</a>
&bnsp;&bnsp;
<a javascript:window
history
go(
)
> Back home Page</a>
<%
刪除OraSession對象
Set OraSession = Nothing
%>
</body></html>
至此
我們已經討論了如何在ASP代碼中使用Oracle Objects for OLE來處理Oracle數據庫中的數據
使用存儲過程
我們已經討論了如何在ASP中訪問Oracle數據庫
所有的SQL語句都可以嵌入在ASP網頁中
如果
From:http://tw.wingwit.com/Article/program/Oracle/201311/18699.html