用Asp實現對ORACLE資料庫的操作

hljhrbsjf發表於2006-03-03
鄧未玲 -------------------------------------------------------------------------------- ASP(Active Server Pages)是微軟公司為開發網際網路應用程式所提出的工具之一,ASP與資料庫的聯接一般透過ADO(Activex Data Object)來實現的,ADO可以完全支援Microsoft SQL Server ,但對應用更加廣泛、機制更加複雜的ORACLE 資料庫服務就有一些困難,如果想作一些簡單的查詢功能,ADO是足夠的,如要想更好地發揮ORACLE資料庫特有的功能,如STORED PROCEDURE,STORED FUNCTION等就要採取利用ASP存取ORACLE 資料庫服務的另個強有力工具——Oracle Object for OLE中的ORACLE物件伺服器(The Oracle Object Server)。本文從一個例項說明如何在ASP中使用ORACLE物件伺服器提供的控制元件來實現對ORACLE資料庫的存取,並就如何維護網路資料庫的完整性約束問題進行一些討論。 Oracle Object for OLE是ORACLE公司為了客戶端存取資料庫所發展的一個很需要的產品,它以Windows 95/98/NT 為基礎供所有的與 OLE 相容的應用程式與程式語言存取ORACLE資料庫,如ASP、Visual Basic excess97等 ,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資料庫應用程式開發的產品,它有以下優點: (1)與資料庫伺服器的連線的執行效率好。因為ADO是透過ODBC來連線資料庫伺服器的,而ORACLE物件伺服器是透過ORACLE的SQL*NET來連線資料庫伺服器的 (2)能更好地發揮ORACLE資料庫的特有功能。如STORED PROCEDURE,STORED FUNCTION、PACKAGE或Multiple Cursor。 本例是一個通訊錄的查詢、錄入的小程式,使用者可以透過瀏覽器對通訊錄表進行查詢,也可把自己的資訊輸入,供別人查詢。 通訊錄表的結構如下: Name Null? Type ------------------------------------------- NAME NOT NULL CHAR(8) ADDRESS CHAR(20) PHONE CHAR(20) EMAIL VARCHAR2(30) 一、進行環境配置 在WEB伺服器上安裝以下軟體並進行配置: (1)基本的WEB 伺服器(WEB SERVER)與ASP等軟體 (2)Oracle Object for OLE2.x (3)SQL*Net Client 或 Oracle Net8 Client 8,安裝之後,用Sql*Net Easy Configuration建立資料庫別名(Database Alias),為ASP連線到資料庫所用的別名。 二.功能實現 (1)查詢:用ASP 取資料庫通訊錄表(TSB1)的資料,將資料顯示在螢幕上。查詢的關鍵在於確定與資料庫的連線成功與否,ORACLE物件伺服器本身有錯誤控制機制可以報出資料庫連線方面的錯誤,具體的程式如下: 查詢程式 0 then response.write"

asp 錯誤控制

" response.write"asp 錯誤來源:"&err.source &"
" response.write"asp 錯誤程式碼:"&err.number&"
" response.write"asp 錯誤說明:"&err.description&"
" err.clear response.write"

ORACLE OLE 錯誤控制

" response.write"ORACL錯誤程式碼:”- &OraSession.LastServerErr&"
" response.write"ORACLE 錯誤說明:"&OraSession.LastServerErrText&"
" else ‘查詢 sql="select * from tsb1" set oradynaset=oradatabase.dbcreatedynaset(sql,0) response.write"

result

" response.write"" for i=0 to oradynaset.fields.count-1 response.write"" next response.write"" do until oradynaset.eof response.write"" for i=0 to oradynaset.fields.count-1 response.write"" next response.write"" oradynaset.dbmovenext loop response.write"
" response.write oradynaset.fields(i).name & " " response.write"
" response.write oradynaset.fields(i).value response.write"
" ‘關閉資料庫 oradatabase.close set orasession=nothing end if %> 下面是程式的查詢結果圖面: 通 訊 錄 NAME ADDRESS PHONE EMAIL 張玲 馬鞍山市湖北路5號 0555-2887765 zhangl@mial.magang.com.cn 林向 馬鞍山市湖南路9號 0555-2223856 lingx@mail.magang.com.cn 鄧國虹 採礦路子4幢504號 0555-2474748 denggh@263.net 李城 青島海洋大學7幢507 0464-32456678 licheng@263.net 王國在 採礦小區7幢807號 0555-3445454 wang@mail.amgang.com.cn 丁剛 紅旗南路17幢405號 0555-2883721 dingg@mail.magang.com.cn 全在保 江西路子7幢607號 0554-4566777 quzab@mial.ccac.com (2)插入自己的資訊:用ASP將使用者在瀏覽器上提供的資料插入到資料庫通訊錄表(TSB1)中,由ORACLE資料庫有一套完整性約束機制,所以插入過程不光是簡單地把資料插入到表中,還要做完整性約束的檢查,不合要求的資料拒絕插入,如果在程式中不考慮處理,執行時,就會因資料庫伺服器報錯而中斷程式。而ASP中的ERR物件可以報出錯誤來源、錯誤程式碼、錯誤說明等,並能把程式引向錯誤處理。 以下是程式,一個是insert.htm, 是一個輸入介面,供使用者輸入自己的資訊,一個是insert.asp,負責將使用者輸入資訊插入資料庫,並進行錯誤檢查。 Insert.htm: 請留下你的資訊

請輸入你的資訊

姓    名:
地    址:
電    話:
E-MAIL:

下面是使用者輸入介面: Insert.asp: 0 THEN response.write"

asp 錯誤控制

" response.write"asp 錯誤來源:"&err.source &"
" response.write"asp 錯誤程式碼:"&err.number&"
" response.write"asp 錯誤說明:"&err.description&"
" ELSE ‘插入完成,返回 response.write"插入完成," end if %> 以上是本人在用ASP工具將原有的ORACLE資料庫資訊搬上網際網路應用的一些體會,例子很簡單,目的在於說明原理,本人在ASP程式中還使用使用了STORED PROCEDURE,STORED FUNCTION、PACKAGE等ORACLE特有的功能以加快速度,提高效率。希望能對大家有所啟發,請來信互相交流。 (網頁編輯:徐向陽)[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/631872/viewspace-818104/,如需轉載,請註明出處,否則將追究法律責任。

相關文章