• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 在ASP中利用Oracle Object for OLE訪問Oracle 8

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    ASP(Active Server Pages)是微軟公司為開發互聯 網絡 應用程序所提出的工具之一,它是一種類似HTML(Hypertext Markup Language超文本標記語言)、Script與CGI(Common Gateway Interface通用網關接口)的結合體,但是其運行效率卻 比CGI更高、程序編制也比HTML
    ASP(Active Server Pages)是微軟公司為開發互聯網絡應用程序所提出的工具之一,它是一種類似HTML(Hypertext
    Markup Language超文本標記語言)、Script與CGI(Common Gateway Interface通用網關接口)的結合體,但是其運行效率卻
    比CGI更高、程序編制也比HTML更方便且更有靈活性,程序安全性及保密性遠比Script好。因此ASP是目前網頁開發技術
    最容易學習、靈活性最大的開發工具。
    ASP內置的ADO組件是微軟公司開發的互聯網絡數據庫存取解決方案,也是ASP存取數據庫的重要功臣,ADO通過ODBC訪問數
    據庫,從理論上講ADO能訪問各種ODBC所支持的數據庫,如Microsoft SQL Server,Aclearcase/" target="_blank" >ccess,Foxpro,Oracle,Dbase等,
    然而在實踐中我們發現ADO可以完全支持Microsoft SQL Server和Acess,然而對于Oracle就有些困難了,筆者在實踐中利
    用ADO訪問Oracle8,結果發現ADO不能訪問Oracle8的數字型字段,并且發現ADO訪問Oracle8的速度極慢。
    為了解決利用ASP訪問Oracle8的速度及其他技術問題,筆者嘗試了利用Oracle Object for OLE訪問Oracle8,結果完全取
    得了筆者預期的結果。
    Oracle Object for OLE是Oracle公司為了客戶端存取數據庫所發展的一個重要的產品,它以Windows95/98/NT為基礎,共
    所有與OLE兼容的應用程序訪問Oracle數據庫。它是沒有用戶界面的OLE Server,其所包含的Oracle Objects Server是ASP
    訪問Oracle數據庫的重要功臣之一。
    要通過Oracle Objects Server來訪問Oracle8數據庫,除了基本的Web服務器與ASP等軟件外,還必須確定Web服務器已經安
    裝了Oracle Object for OLE軟件,其所需的軟件包括:Network Protocol Adapter、Oracle Object for OLE2.X、
    SQL*Net Client2.X或Oracle Net8 Client8.X、SQL*Plus及Oracle8 ODBC Driver。在確定Web服務器已安裝上述軟件后,
    還必須利用SQL*Net Client2.X或Oracle Net8 Client8.X進行數據庫的連接測試并設置數據庫別名(Database Alias)。
    Oracle Objects Server共提供Oraclient、Orasession、Oraconnection、OraDatabase、OraDynaset、OraSQLstmt、
    OraField、Oraparameter、Oraparameter Array等九個對象供開發者使用。其功能與作用分述如下:
    1.Oraclient對象
    Oraclient對象是用來定義服務器端(Client或Workstation)的范圍,Oraclient會記錄此服務器端的所有Orasession對象。
    Oraclient由系統根據需要自動建立。
    2.Orasession對象
    Orasession對象用來在程序中管理Oraconnection、OraDatabase、OraDynaset等對象,其建立方法如下:
    Set Orasession=Create(“OracleInProcServer.Xorasession”)
    3.Oraconnection對象
    Oraconnection對象表示對OraDatabase對象的連接,當需要建立OraDatabase對象時,系統會自動產生一個Oraconnection
    對象。反之,當與數據庫斷開連接時,Oraconnection對象自動釋放。
    4.OraDatabase對象
    OraDatabase對象表示對數據庫服務器的虛擬登錄,其登錄方法如下:
    Set Oradadabase=Orasession.Dbopendatabase_
    (“數據庫別名”, “用戶名稱/密碼”,0)
    5.OraDynaset對象
    OraDynaset對象會將數據庫服務器符合SELECT命令的數據加以存儲在客戶端的緩沖區,讓用戶瀏覽或更新,最后將結果寫
    回到服務器,其方法如下:
    SetOraDynaset=OraDatabase.DbcreateDynaset(“SQL語句”,0)
    6.OraSQLstmt對象
    OraSQLstmt對象通常用來運行SQL命令、或是調用存儲過程,其用法如下:
    Set Orasqlstmt=Oradatabase.createSQl(“SQL語句”,0)
    7.OraField對象
    OraField對象表示在OraDynaset對象中的某個字段或數據項目,他通過Value屬性設置或取得OraDynaset對象中的某個字段
    值。
    8.Oraparameter對象
    Oraparameter對象表示一個在SQL命令或PL/SQL程序區塊中所附加的變量。
    9.Oraparameter Array對象
    Oraparameter Array對象是Oraparameter對象的數組類型,Oraparameter Array對象可以間接通過OraDatabase對象的
    Oraparameter數據集合來增加、存取或刪除某個變量。
    ?
    下面舉一具體例子說明如何在ASP中利用Oracle Object for OLE訪問Oracle 8。
    筆者編寫了一個在ASP中利用Oracle Object for OLE2.3查詢Oracle 8.0.5數據庫,并進行分頁顯示的程序。由于
    Orasession對象的屬性中沒有控制分頁的屬性,應此筆者自編了分頁控制的程序。
    以下共兩個ASP文件(query.asp和query1.asp),query.asp文件先取得數據庫表的內容,然后計算分頁的頁數,如果頁數超
    過一頁,則交由query1.asp處理,其程序代碼如下
    ‘query.asp
    <%
    ‘連接數據庫
    set orasession=createobject("oracleinprocserver.xorasession")
    set oradatabase=orasession.dbopendatabase("orant","scotter/tiger",0)
    ‘設置查詢條件
    sql="select * from cq_hjwj "
    set session(oradynaset)=oradatabase.dbcreatedynaset(sql,0)
    ‘設置頁長
    pagesize=15
    if session(oradynaset).recordcount=0 then
    response.write "無符合條件的數據"
    else
    response.write"<h3>查詢結果</h3>"
    ‘計算頁數
    pages=int(session(oradynaset).recordcount/pagesize)
    if pages*pagesize=session(oradynaset).recordcount then
    pages=int(session(oradynaset).recordcount/pagesize)
    else
    pages=int(session(oradynaset).recordcount/pagesize)+1
    end if
    if request("page")="" then
    page=1
    else
    page=cstr(request("page"))
    end if
    response.write"共"&pages&"頁,目前第"&page&"頁"
    response.write"<table border=5><tr>"
    for i=0 to session(oradynaset).fields.count - 1
    response.write"<td>"
    response.write session(oradynaset).fields(i).name
    response.write"</td>"
    next
    response.write "</tr>"
    startrow=(page-1)*pagesize+1
    endrow=page*pagesize
    oradynaset.moveto startrow
    for j=startrow to endrow
    response.write"<tr>"
    for i=0 to session(oradynaset).fields.count - 1
    response.write"<td>"
    response.write session(oradynaset).fields(i).value
    response.write"</td>"
    next
    response.write"</tr>"
    session(oradynaset).dbmovenext
    if session(oradynaset).eof then exit for
    next
    response.write"</table>"
    end if
    if page>1 then
    response.write "<a href='query1.asp?page=1'>第一頁</a> "
    response.write "<a href='query1.asp?page=" & page-1 & "'>上一頁</a> "
    end if
    if cint(page)<pages then
    response.write "<a href='query1.asp?page=" & page+1 & "'>下一頁</a> "
    response.write "<a href='query1.asp?page=" & pages & "'>最后頁</a> "
    end if
    set orasession=nothing
    %>
    <html>
    </html>
    ?
    ‘query1.asp
    <%
    ‘設置頁長
    pagesize=15
    if session(oradynaset).recordcount=0 then
    response.write "無符合條件的數據"
    else
    response.write"<h3>查詢結果</h3>"
    ‘計算頁數
    pages=int(session(oradynaset).recordcount/pagesize)
    if pages*pagesize=session(oradynaset).recordcount then
    pages=int(session(oradynaset).recordcount/pagesize)
    else
    pages=int(session(oradynaset).recordcount/pagesize)+1
    end if
    if request("page")="" then
    page=1
    else
    page=cstr(request("page"))
    end if
    response.write"共"&pages&"頁,目前第"&page&"頁"
    ?
    response.write"<table border=5><tr>"
    for i=0 to session(oradynaset).fields.count - 1
    response.write"<td>"
    response.write session(oradynaset).fields(i).name
    response.write"</td>"
    next
    response.write "</tr>"
    startrow=(page-1)*pagesize+1
    endrow=page*pagesize
    oradynaset.moveto startrow
    for j=startrow to endrow
    response.write"<tr>"
    for i=0 to session(oradynaset).fields.count - 1
    response.write"<td>"
    response.write session(oradynaset).fields(i).value
    response.write"</td>"
    next
    response.write"</tr>"
    session(oradynaset).dbmovenext
    if session(oradynaset).eof then exit for
    next
    response.write"</table>"
    end if
    if page>1 then
    response.write "<a href='query1.asp?page=1'>第一頁</a> "
    response.write "<a href='query1.asp?page=" & page-1 & "'>上一頁</a> "
    end if
    if cint(page)<pages then
    response.write "<a href='query1.asp?page=" & page+1 & "'>下一頁</a> "
    response.write "<a href='query1.asp?page=" & pages & "'>最后頁</a> "
    end if
    set orasession=nothing
    %>
    <html>
    </html>
    上述程序在Windows Nt4.0+Iss4.0上通過運行。
    由于ORACLE數據庫應用很廣泛,市場銷售量一直占前幾位,許多企業的MIS、IT系統都以ORACLE數據庫作為數據存儲基礎,
    將ORACLE數據庫的信息加到網頁中,可以大大地豐富網頁發布的信息,使我們的網頁既能發布實時、復雜的數據庫信息,
    又能接收客戶機對數據庫的修改信息。因此使用此方法能提高在Web上訪問ORACLE的效率。
      

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>