ASP(Active Server Pages)是微軟公司為開發互聯網應用程序所提出的工具之一ASP與數據庫的聯接一般通過ADO(Activex Data Object)來實現的就象《計算機世界》年月日的《用ASP對SQL Server數據庫操作》文章介紹的一樣ADO可以完全支持Microsoft SQL Server 但對應用更加廣泛機制更加復雜的ORACLE 數據庫服務就有一些困難如果想作一些簡單的查詢功能ADO是足夠的如要想更好地發揮ORACLE數據庫特有的功能如STORED PROCEDURESTORED FUNCTION等就要采取利用ASP存取ORACLE 數據庫服務的另一個強有力工具——Oracle Object for OLE中的ORACLE對象服務器(The Oracle Object Server)本文從一個實例說明如何在ASP中使用ORACLE對象服務器提供的控件來實現對ORACLE數據庫的存取並就如何維護網絡數據庫的完整性約束問題進行一些討論
Oracle Object for OLE是ORACLE公司為了客戶端存取數據庫所發展的一個很需要的產品它以Windows //NT 為基礎供所有的與OLE 兼容的應用程序與程序語言存取ORACLE數據庫如ASPVisual Basic excess等 Oracle Object for OLE包含了ORACLE對象服務器(The Oracle Object Server)ORCLE 數據控制項(The Oracle Data Control)與ORACLE 對象類程序庫(The Oracle Objects for OLE C++ Class Library)等三項產品
與ADO相比ORACLE對象服務器是專用於ORACLE數據庫應用程序開發的產品它有以下優點
() 與數據庫服務器的連接的運行效率好因為ADO是通過ODBC來連接數據庫服務器的而ORACLE對象服務器是通過ORACLE的SQL*NET來連接數據庫服務器的
() 能更好地發揮ORACLE數據庫的特有功能如STORED PROCEDURESTORED FUNCTIONPACKAGE或Multiple Cursor
本例是一個通訊錄的查詢錄入的小程序用戶可以通過浏覽器對通訊錄表進行查詢也可把自己的信息輸入供別人查詢
通訊錄表的結構如下
Name Null? Type
NAME NOT NULL CHAR()
ADDRESS CHAR()
PHONE CHAR()
EMAIL VARCHAR()
首先進行環境配置
在WEB服務器上安裝以下軟件並進行配置
()基本的WEB 服務器(WEB SERVER)與ASP等軟件
()Oracle Object for OLEx
()SQL*Net Client 或 Oracle Net Client 安裝之後用Sql*Net Easy Configuration建立數據庫別名(Database Alias)為ASP連接到數據庫所用的別名
二.功能實現
()查詢用ASP 取數據庫通訊錄表(TSB)的數據將數據顯示在屏幕上查詢的關鍵在於確定與數據庫的連接成功與否ORACLE對象服務器本身有錯誤控制機制可以報出數據庫連接方面的錯誤具體的程序如下
< HTML >
< tile > 查詢程序 < /title >
< BODY >
< %
on error resume next
連接數據庫
set orasession=createobject
(OracleInprocServerXOraSession)
set oradatabase=orasession
dbopendatabase(axpscott/tiger)
出錯處理
if errnumber > then
responsewrite< h >asp 錯誤控制 < /h >
responsewriteasp 錯誤來源:&errsource &< br >
responsewriteasp 錯誤代碼:&errnumber&< br >
responsewriteasp 錯誤說明:&errdescription&< br >
errclear
responsewrite< h >ORACLE OLE 錯誤控制< /h >
responsewriteORACLE 錯誤代碼:
&OraSessionLastServerErr&< br >
responsewriteORACLE 錯誤說明:
&OraSessionLastServerErrText&< br >
else
查詢
sql=select * from tsb
set oradynaset=oradatabasedbcreatedynaset(sql)
responsewrite< h >result< /h >
responsewrite< table border= >< tr >
for i= to ount
responsewrite< td >
responsewrite oradynasetfields(i)name &
responsewrite< /td >
next
responsewrite< /tr >
do until oradynaseteof
responsewrite< tr >
for i= to ount
responsewrite< td >
responsewrite oradynasetfields(i)value
responsewrite< /td >
next
responsewrite< /tr >
oradynasetdbmovenext
loop
responsewrite< /table >
關閉數據庫
oradatabaseclose
set orasession=nothing
end if
% >
< /body >
< /html >
下面是程序的查詢結果圖面
通訊錄
NAME ADDRESS PHONE EMAIL
張玲 馬鞍山市湖北路號 zhcn
林向 馬鞍山市湖南路號 lcn
鄧國虹 采礦路子幢號
李城 青島海洋大學幢
王國在 采礦小區幢號 cn
丁剛 紅旗南路幢號 dcn
全在保 江西路子幢號
()插入自己的信息用ASP將用戶在浏覽器上提供的數據插入到數據庫通訊錄表(TSB)中由ORACLE數據庫有一套完整性約束機制所以插入過程不光是簡單地把數據插入到表中還要做完整性約束的檢查不合要求的數據拒絕插入如果在程序中不考慮處理運行時就會因數據庫服務器報錯而中斷程序而ASP中的ERR對象可以報出錯誤來源錯誤代碼錯誤說明等並能把程序引向錯誤處理
以下是程序一個是 是一個輸入界面供用戶輸入自己的信息一個是insertasp負責將用戶輸入信息插入數據庫並進行錯誤檢查
:
< html >
< head >
< meta httpequiv=ContentLanguage
content=zhcn >
< meta httpequiv=ContentType
content=text/html; charset=gb >
< meta name=GENERATOR content=
Microsoft FrontPage >
< meta name=ProgId content=
FrontPageEditorDocument >
< title >請留下你的信息< /title >
< /head >
< body >
< p align=center >請輸入你的信息< /p >
< form method=post action=insertasp >
姓 名
< input type=text name=name size= > < br >
地 址
< input type=text name=address size= > < br >
電 話
< input type=text name=phone size= > < br >
EMAIL< input type=text name=email size= > < br >
< input type=submit value=確定 >
< input type=reset value=取消 >< br >
< /form >
< /body >
< /html >
From:http://tw.wingwit.com/Article/program/Oracle/201311/17490.html