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

在ASP中使用Oracle數據庫

2013-11-13 22:17:26  來源: Oracle 

  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/SQLPL/SQL是Oracle對SQL命令集的擴展開發人員能夠利用它對非結構化的SQL命令塊進行流控制和邏輯設計如果安裝的是Oraclei數據庫我相信你已經在使用Oracle Objects for OLE如果還沒有使用Oracle Objects for OLE可以從Oracle的網站上下載它
  
    另外我們還需要了解Oracle針對Visual Basic開發的二個對象和一個接口OraSessionOraDynaset對象和OraDatabase接口OraSession對象管理應用程序的OraDatabaseOraConnection和OraDynaset它是由ASP的CreateObject而不是Oracle Objects for OLE創建的一個對象OraDatabase接口向Oracle數據庫表示表現用戶對話並為SQLPL/SQL的執行提供方法它們每個都有一些屬性和方法例如OraDynaset對象有BOFEOFBookmarkConnection等屬性以及AddNewUpdateDeleteEditRefreshClone等個方法
  
    下面我們就開始切入主題討論如何使用ASP處理Oracle數據庫中的數據
  
    准備工作
  
    我們需要什麼樣的環境和工具?
  
    )我使用了OracleiIISWindows專業版作為應用程序的開發和運行環境
  
    )在Oracle數據庫中建立一個名字為MYTABLE或類似的表
  
  ID (type: number) User Name(type: varchar) Phone(type: varchar) Email(type: varchar)
   Colin Tong c
   John White
   Don Wod
  
    數據的訪問和存取
  
    ) Instantiate OOO Object OraSession and interface OraDatabase for connecting to ORACLE
  
    )初始化Oracle Objects for OLEOraSession對象和OraDatabase接口為連接ORACLE數據庫作准備
  
    首先使用CreateObject創建OraSession對象然後通過打開一個與Oracle的連接創建OraDatabase對象如下所示
  
  <%
  Set OraSession = CreateObject(OracleInProcServerXOraSession)
  Set OraDatabase = OraSessionOpenDatabase( _
  username/password Cint())
  %>
  
     usernamepassword是你所使用的關系數據庫的用戶名和口令
  
    )創建OraDynaset對象執行SQL命令我們可以使用CreateDynaset或DbCreateDynaset創建記錄集
  
  <%
  execute SQL
  Set OraDynaset = OraDatabaseDbCreateDynaset( _
  select * from mytable cint())
  %>
  
    )存取數據並刪除創建的對象
  
  
  <%
  Do While(OraDynasetEOF = FALSE)
  Responsewrite(OraDynasetFields(ID))
  Responsewrite(OraDynasetFields(UserName))
   others
  
  OraDynasetMoveNext
  Loop
  remove OraSession
  Set OraSession = Nothing
  %>
  
  
    編輯數據記錄
  
    我們將使用OraDynaset的方法實現對數據記錄的編輯
  
    )使用SQL語句創建OraDynaset對象
  
  <%
  創建ID= fID的記錄的OraDynaset對象
  Set OraDynaset = OraDatabaseCreateDynaset(_
  select * from MYTABLE where ID= & fID cint())
  %>
  
    fID是想插入更更新的記錄的ID值
  
    )執行OraDynaset更新或添加數據記錄
  
  
  <%
  使用Edit方法更新ID=fID記錄的域
  或使用AddNew插入一個新記錄
  OraDynasetEdit
  OraDynasetFields(Phone)Value = fPhone
  OraDynasetUpdate
  
   刪除創建的對話
  Set OraSession = Nothing
  %>
  
  
    刪除數據記錄
  
    如果已經真正地理解了我們在上面討論的一些方法(EditUpdate和AddNew)也許有的讀者已經知道該如何在Oracle數據庫中刪除記錄了
  
  
  <%
  刪除所有符合上面條件的記錄
  OraDynasetDelete
  %>
  
  
    在Oraclei中搜索和更新數據記錄的代碼
  
    )搜索
  
  <%
  RetriveRecProcasp 使用ASP的Oracle Objects for OLE更新數據記錄
  
  %>
  <%
  定義作為OLE對象的變量
  Dim OraSession
  Dim OraDatabase
  Dim OraDynaset
  
  創建OraSession對象
  Set OraSession = CreateObject(OracleInProcServerXOraSession)
  
  通過打開Oracle數據庫的一個連接創建OraDatabase對象
  一定要使用自己的用戶名和口令訪問Oracle數據庫
  Set OraDatabase = OraSessionOpenDatabase( user/password _
  Cint())
  
  創建OraDynaset對象執行SQL語句
  Set OraDynaset = OraDatabaseDbCreateDynaset(_
  select * from mytable cint())
  %>
  <html><body>
  <H>Retrieve All Records in MYTABLE Table ( in Oracle)
  Using ooo</H
  <table border= ID=Table
  <%
  Do While(OraDynasetEOF = FALSE)
  ResponseWrite(<tr><td>)
  Responsewrite(OraDynasetFields(ID))
  ResponseWrite(</td><td>)
  Responsewrite(OraDynasetFields(UserName))
  ResponseWrite(</td><td>)
  Responsewrite(OraDynasetFields(Phone))
  ResponseWrite(</td><td>)
  Responsewrite(OraDynasetFields(Email))
  ResponseWrite(</td></tr>)
  OraDynasetMoveNext
  Loop
  
  刪除OraSession
  Set OraSession = Nothing
  %>
  </table>
  <a javascript:windowhistorygo()
  Back previous Page</a> |
  <a > Back home Page</a>
  </body></html>
  
  
    )更新
  
  <%
  UpdateRecProcasp 使用ASP的Oracle Objects for OLE更新數據記錄
  %>
  <%
  定義作為OLE對象的變量
  Dim OraSession
  Dim OraDatabase
  Dim OraDynaset
  
  從提交的表格中獲取字段值
  fID = requestform(ID)
  fUserName = requestform(UserName)
  fPhone = requestform(Phone)
  fEmail = requestform(Email)
  
  創建OraSession對象
  Set OraSession = CreateObject(OracleInProcServerXOraSession)
  
  通過打開Oracle數據庫的一個連接創建OraDatabase對象
  Set OraDatabase = OraSessionOpenDatabase( user/password _
  Cint())
  
  創建ID= fID的記錄的OraDynaset對象
  Set OraDynaset = OraDatabaseCreateDynaset(_
  select * from MYTABLE where ID= & fID cint())
  
  使用Edit方法更新ID=fID記錄的字段
  Do While(OraDynasetEOF = FALSE)
  OraDynasetEdit
  OraDynasetFields(UserName)Value = fUserName
  OraDynasetFields(Phone)Value = fPhone
  OraDynasetFields(Email)Value = fEmail
  OraDynasetUpdate
  OraDynasetMoveNext
  Loop
  %>
  <html><body>
  <H>Update A Record in MYTABLE Table (Oracle) Using ooo</H
  The record (ID=<%=fID%>) has been updated successfully!<br>
  You can view the result <a > here</a>
  <p>
  <a javascript:windowhistorygo()> Back previous Page</a>
  &bnsp;&bnsp;
  <a javascript:windowhistorygo()> 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
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.