小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

如何在ASP中訪問Oracle?

 aaie_ 2012-09-11

我一直使用Oracle數(shù)據(jù)庫(kù),現(xiàn)在需要Web上對(duì)Oracle8數(shù)據(jù)庫(kù)進(jìn)行訪問,可我發(fā)現(xiàn),在ASP中,ADO對(duì)Oracle的訪問并不順利,不但速度慢,而且還不能訪問Oracle8的數(shù)字型字段(!)請(qǐng)問有什么辦法可以實(shí)現(xiàn)對(duì)它們的順利訪問?

 

我們可以利用Oracle Object for OLE所包含的Oracle Objects Server來實(shí)現(xiàn)在ASP中對(duì)Oracle 8的訪問。Oracle Objects Server共提供Oraclient、Orasession、OraconnectionOraDatabase、OraDynaset、OraSQLstmtOraFieldOraparameter、Oraparameter Array等九個(gè)對(duì)象供開發(fā)者使用。

Oracle Object for OLEOracle公司為客戶端訪問數(shù)據(jù)庫(kù)開發(fā)的一個(gè)軟件,運(yùn)行在Windows95/98/NT平臺(tái)。在用Oracle Objects Server訪問Oracle8數(shù)據(jù)庫(kù)之前,我們必須在Web服務(wù)器上安裝Oracle Object for OLE,然后利用SQL+net Client2.XOracle net8 Client8.X進(jìn)行數(shù)據(jù)庫(kù)的連接測(cè)試并設(shè)置數(shù)據(jù)庫(kù)別名。

下面舉一個(gè)在ASP中利用Oracle Object for OLE2.3查詢Oracle 8.0.5數(shù)據(jù)庫(kù),并進(jìn)行分頁顯示的程序范例。需要說明,由于Orasession對(duì)象的屬性中沒有控制分頁的屬性,本例同時(shí)使用了一個(gè)分頁控制的程序,chunfeng.asp文件先取得數(shù)據(jù)庫(kù)表的內(nèi)容,然后計(jì)算分頁的頁數(shù),如果頁數(shù)超過一頁,則交由chunfeng01.asp處理。具體代碼如下:

chunfeng.asp
<%
set orasession=createobject("oracleinprocserver.xorasession")
set oradatabase=orasession.dbopendatabase("orant","scotter/tiger",0)

' 連接數(shù)據(jù)庫(kù)
sql="select * from cq_hjwj "
set session(oradynaset)=oradatabase.dbcreatedynaset(sql,0)

'設(shè) 置查詢條件
pagesize=15

' 設(shè)置頁長(zhǎng)
if session(oradynaset).recordcount=0 then
response.write "
對(duì)不起,沒有找到符合條件的數(shù)據(jù)!"
else
response.write"<h3>
查詢結(jié)果</h3>"
pages=int(session(oradynaset).recordcount/pagesize)
if pages*pagesize=session(oradynaset).recordcount then
pages=int(session(oradynaset).recordcount/pagesize)

' 計(jì)算頁數(shù)
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='chunfeng01.asp?page=1'>
第一頁</a>  "
response.write "<a href='chunfeng01.asp?page=" & page-1 & "'>
上一頁</a>  "
end if
if cint(page)<pages then
response.write "<a href='chunfeng01.asp?page=" & page+1 & "'>
下一頁</a>  "
response.write "<a href='chunfeng01.asp?page=" & pages & "'>
最后頁</a>  "
end if
set orasession=nothing
%>
<html>
</html>
  
chunfeng01.asp
<%
pagesize=15

' 設(shè)置頁長(zhǎng)
if session(oradynaset).recordcount=0 then
response.write "
對(duì)不起,沒有找到符合條件的數(shù)據(jù)!"
else
response.write"<h3>
查詢結(jié)果</h3>"
pages=int(session(oradynaset).recordcount/pagesize)
if pages*pagesize=session(oradynaset).recordcount then
pages=int(session(oradynaset).recordcount/pagesize)

' 計(jì)算頁數(shù)
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='chunfeng01.asp?page=1'>
第一頁</a>  "
response.write "<a href='chunfeng01.asp?page=" & page-1 & "'>
上一頁</a>  "
end if
if cint(page)<pages then
response.write "<a href='chunfeng01.asp?page=" & page+1 & "'>
下一頁</a>  "
response.write "<a href='chunfeng01.asp?page=" & pages & "'>
最后頁</a>  "
end if
set orasession=nothing
%>
<html>
</html>

Oracle Objects Server提供的九個(gè)對(duì)象的功能與作用分述如下:

序號(hào)

對(duì)象名稱

   

1

Oraclient對(duì)象

用來定義服務(wù)器端(ClientWorkstation)的范圍,Oraclient會(huì)記錄此服務(wù)器端的所有Orasession對(duì)象。由系統(tǒng)根據(jù)需要自動(dòng)建立。

2

Orasession對(duì)象

用來在程序中管理Oraconnection、OraDatabaseOraDynaset等對(duì)象,其建立方法為:

Set Orasession=Create(OracleInProcServer.Xorasession)

3

Oraconnection對(duì)象

表示對(duì)OraDatabase對(duì)象的連接,當(dāng)需要建立OraDatabase對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)產(chǎn)生一個(gè)Oraconnection對(duì)象。反之,當(dāng)與數(shù)據(jù)庫(kù)斷開連接時(shí),Oraconnection對(duì)象自動(dòng)釋放。

4

OraDatabase對(duì)象

表示對(duì)數(shù)據(jù)庫(kù)服務(wù)器的虛擬登錄,其登錄方法為:

Set Oradadabase=Orasession.Dbopendatabase_ (“數(shù)據(jù)庫(kù)別名”, “用戶名稱/密碼”,0)

5

OraDynaset對(duì)象

將數(shù)據(jù)庫(kù)服務(wù)器符合SELECT命令的數(shù)據(jù)加以存儲(chǔ)在客戶端的緩沖區(qū),讓用戶瀏覽或更新,最后將結(jié)果寫回到服務(wù)器,其方法:

SetOraDynaset=OraDatabase.DbcreateDynaset(SQL語句”,0)

6

OraSQLstmt對(duì)象

通常用來運(yùn)行SQL命令,或調(diào)用存儲(chǔ)過程,其用法為:

Set Orasqlstmt=Oradatabase.createSQl(SQL語句”,0)

7

OraField對(duì)象

表示在OraDynaset對(duì)象中的某個(gè)字段或數(shù)據(jù)項(xiàng)目,它通過Value屬性設(shè)置或取得OraDynaset對(duì)象中的某個(gè)字段值。

8

Oraparameter對(duì)象

表示一個(gè)在SQL命令或PL/SQL程序區(qū)塊中所附加的變量。

9

Oraparameter Array對(duì)象

Oraparameter對(duì)象的數(shù)組類型。它可以間接通過OraDatabase對(duì)象的Oraparameter數(shù)據(jù)集合來增加、存取或刪除某個(gè)變量。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多