ASP調用Oracle預存程序
來源:互聯網
上載者:User
夏毅
一、ASP動態網站開發技術
隨著人們對網際網路認識的加深和IT技術的發展,一成不變的靜態網頁已經越來越滿足不了資訊互動和電子商務的需求,因此以資料庫為核心開發能夠實現資訊互動和個人化服務的網頁已經成為一種潮流。為了迎合動態互動式網頁的開發趨勢,出現了可以與後台資料庫進行互動的Web開發技術,目前比較流行的一類是建立在微軟Windows平台IIS基礎上的ASP(Active Server Pages)技術。它是將VBscript、JavaScript等特定的指令碼語言利用特殊的標記嵌入到HTML中,當Browser端提出請求時,Web伺服器會使用相應的指令碼解釋引擎對指令碼解釋執行,完成資料庫的查詢、修改等任務,並把結果動態格式化成HTML形式送回到Browser請求端。
Oracle資料庫是目前國內外最常使用的資料庫,隨著Oracle 8i的發布,它又增添了對Java和對象的支援,大大方便了網路軟體的開發。因此目前ASP應用程式的開發在很多場合需要與後台Oracle資料庫打交道。下面,我們將以多個專題討論群組的應用為例,著重介紹ASP指令碼是如何利用ADO組件的Command對象訪問資料庫的預存程序的。
多專題討論群組使用者提交的資訊都統一儲存在以下結構的資料庫表中:
CREATE TABLE messages(
m_id NUMBER,
m_forumName varchar2(30) NOT NULL,
m_subject varchar2(30) NOT NULL,
m_username varchar2(30) NOT NULL,
m_email varchar2(70) NOT NULL,
m_entrydate date default sysdate,
m_message varchar2(200),
m_ordernum number,
m_reply number);
其中各欄位的含義如下:
m_id:每條訊息唯一識別的標識號;
m_forumname:討論專題名稱;
m_subject:訊息主題;
m_username:使用者名稱;
m_email:E-mail地址;
m_entrydate:提交時間;
m_message:訊息內容;
m_ordernum:順序號;
m_reply:是否為回答訊息。
二、ASP指令碼調用Oracle資料庫包中的預存程序
1.建立資料庫包
假設現在資料庫表中已經存有多個專題討論的訊息,如果想要在網頁上分別顯示各專題的名稱及各專題的訊息數目,首先在Oracle資料庫中定義一個名為getForum的預存程序,放在名為forum_retrieve的包中。
如果預存程序返回的結果是多行資料集,此過程必須放在一個包中。包是Oracle資料庫的一種對象,它可以將資料類型、預存程序、函數、變數和常量封裝在一起,類似於VB中的標準代碼模組。包在結構上又分為包頭和包體兩部分分別儲存的,因此這兩部分也要分別建立,包頭用來定義可被外部參考的元素;包體定義實際代碼,即邏輯執行部分。