六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

在ASP中使用Oracle Object for OLE訪問Oracle 8

[摘要]ASP(Active Server Pages)是微軟公司為開發互聯網絡應用程序所提出的工具之一,它是一種類似HTML(Hypertext Markup Language超文本標記語言)、Script與CGI(Common Gateway Interface通用網關接口)的結合體,但是其運行效率卻...

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,Access,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的效率。


主站蜘蛛池模板: 日本 韩国 三级 国产 欧美 | 青春草久久 | 一级做a爰片久久毛片16 | 天天草天天干天天 | 亚洲v日韩v欧美在线观看 | 中文字幕在线乱人伦 | 天天爱天天做久久天天狠狼 | 欧美一级黄色片免费看 | 天天干天天碰 | 青草福利在线 | 亚洲永久 | 天天躁日日躁狠狠躁欧美日韩 | 亚洲69视频 | 欧洲性生活视频 | 欧美一级片免费观看 | 亚洲欧美精选 | 图片区欧美色图 | 日夜夜操| 日本成人xxx | 四虎永久在线精品影院 | 泄欲网站免费观看 | 在线视频欧美精品 | 四虎 在线播放 | 天天舔日日干 | 青青草原在线 | 亚洲天堂在线观看视频 | 青草视频在线观看完整版 | 天天干天天插天天 | 四虎国产精品免费久久久 | 天天操天天摸天天曰天天干天天弄天天干 | 人人网碰人人网超 | 欧美一区二区激情三区 | 亚洲另类电击调教在线观看 | 四虎国产精品永久地址51 | 日本高清视频不卡 | 一级做a爰片欧美一区 | 日本亚欧乱色视频在线网站 | 色综合久久天天综合 | 亚洲高清免费 | 下克上动漫第一集 | 亚洲高清综合 |