利用ASP技術開發基於WWW的資料庫檢索程式

來源:互聯網
上載者:User
程式|資料|資料庫  ASP是微軟公司推出的用以取代CGI的新技術,是目前公認的建立Windows NT動態網站最好的工具。它與ADO(Active Data Object,一種新的資料訪問模型)的充分結合,提供了強大的資料庫訪問功能,使之成為進行網上資料庫管理的重要手段。

    一、ASP簡介  

ASP內含於Internet Information Server(簡稱IIS3.0)中,副檔名以.asp表示。ASP檔案可以用常規的文字編輯器編輯,也可以利用專門的輔助開發工具InterDev進行開發設計,InterDev的優點是將整個Web程式設計(包括網頁設計、ASP程式設計、資料庫管理等)融為一體,比較適合於較大工程項目的開發研製。ASP使用VBScript、JavaScript等指令碼語言作為開發工具,鑲嵌於HTML文本中,使用“<%…%>”將ASP的程式包含起來。當使用者從瀏覽器向Web伺服器提出請求時,Web伺服器會自動將ASP的程式解釋為標準的HTML格式的首頁內容,使用者端只要使用常規可執行HTML程式的瀏覽器,就可瀏覽ASP所設計的首頁內容,因此與瀏覽器無關,並且保證了ASP的來源程式代碼不會外漏。

    ASP中包括五個內建的ActiveX伺服器組件和五個內建的對象:Database Access component(資料庫訪問組件)、File Access component(檔案訪問組件)、Ad Rotator component(廣告輪播器組件)、Content Linking component(內容連結組件)、Browser Capabilities component(瀏覽器信組件)以及Request(請求對象)、Server(伺服器對象)、Session(會話對象)、Response(響應對象)、Application(應用程式物件)。在所有ASP組件中,最有用的是資料庫訪問組件,也稱為ActiveX資料對象或ADO。在網站發行集資料庫將使用這個組件及其中包含的對象,以完成對ODBC資料來源的讀寫。

     此外,ASP技術的另一個重要特點是,程式員可以利用Java、Visual Basic、 Visual C++等語言製作適應自己特殊需要的ActiveX伺服器組件來擴充ASP的功能,使自己的動態網頁幾乎具有無限的擴充能力,這是傳統的CGI程式所不及的。

    二、與ADO結合開發基於WWW的資料庫檢索程式  

ASP技術與ADO技術相結合,可以實現基於WWW的資料庫管理功能,使用者可在瀏覽器畫面中檢索、輸入、更新和刪除資料庫資訊,從而建立提供資料庫資訊的首頁內容。ADO主要提供了七個對象和四個集合來完成對於資料庫的管理,包括:Connection、Command、Parameter、Recordset、Field、Property、Error以及Fields、Properties、Parameters、Errors。Connection對象用來建立與資料庫的串連,Command對象完成對資料庫的操作,Recordset對象可以查看或操作資料庫中返回的資料。而Field 對象和Fields集合允許對目前記錄的每一個欄位進行操作,Parameter 對象和Parameters集合為Command對象提供資訊和資料,Property 對象和Properties集合為Connection、Command、 Recordset、Field對象的特性提供資訊,Error對象和Errors集合在錯誤發生時提供錯誤資訊。  

下面介紹開發資料庫檢索程式的基本設計方法:

⒈建立資料庫源名(DSN)。DSN是通過ODBC建立,由ODBC使用和識別的、用以串連應用程式和後台資料庫的資料庫邏輯名。具體建立ODBC資料來源的方法可參閱有關資料,這裡不再介紹。假定已為一個SQL Server資料庫建立了取名為“BOOK”的 ODBC資料來源。

⒉建立資料庫連結(Connection)。通過伺服器對象的CreateObject方法,可以建立Connection對象和使用變數接受對象引用。一旦連線物件建立之後,它就可用來開啟到任何ODBC資料來源的串連。如下∶

dim conn  ‘申明變數

Set Conn=Server.CreatObject("ADODB.Connection")  ‘建立連結化物件

Conn.Open "book",IUSR_TSG01, ""   ‘開啟到ODBC的連結,其中IUSR_TSG01為授權的使用者ID號,使用者口令未加設定。程式員應根據自己的情況進行更替。

⒊建立資料對象(Recordset)。Recordset 是ADO中比較複雜的對象,有許多的屬性和方法,包括:Eof(檔案尾)、Bof(檔案頭)、Absolutepage(絕對頁)、Recordcount(記錄計數) 、Pagecount(頁計數)等屬性以及MoveFirst(移到第一條記錄) 、MoveLast(移到最後一條記錄) 、 MoveNext(移到下一條記錄) 、 MovePrevious(移到上一條記錄)等常用方法。資料對象與ASP的Session對象結合,還可以實現檢索結果的分頁處理。

Dim Rs  ‘申明變數

Set Rs=Server.CreatObject("ADODB.Recordset")   ‘建立資料對象

Rs.PageSize=10  ‘設定一頁所顯示的記錄數

⒋操作資料庫。ADO通過執行標準的SQL語句實現檢索功能,因此首先要定義SQL查詢語句,然後執行該查詢命令,最終形成一個檢索結果集合。

Dim sql    ‘申明變數

sql="select * from publication  where title like 'ASP%%'"  ‘定義SQL查詢語句,檢索資料庫的publication表中書名以ASP開頭的所有圖書的記錄

Const  adOpenkeyset=1  ‘定義Recordset的類型

Rs.Open Sql,conn, adOpenkeyset   ‘執行sql語句,在資料對象Rs中儲存檢索結果。

⒌在ASP中引用返回結果。假如準備在瀏覽器上顯示檢中的圖書資訊,可以採用以下兩種方法:

<% Response.write(Rs.("Title"))%>或

<%=Rs("Title")%>   

⒍關閉資料庫物件和連結化物件。在程式結束前一定要關閉ADO對象,釋放伺服器資源。如下:

     Rs.close

     Conn.close

     Set Rs=nothing

     Set Conn=nothing

下面是一個極其簡單的檢索程式,希望能夠協助大家理解一些概念。

Example.asp

<html>

<head>

<title>ASP資料庫檢索執行個體</title>

</head>

<%

Dim Conn

Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Open "book"

Sql= "select * from publication where title like 'ASP%%'"

Dim Rs

Set Rs=Server.CreateObject("ADODB.recordset")

Const adOpenkeyset=1

Rs.Open Sql,Conn, adOpenkeyset

%>

<strong>檢索詞命中率:<%=Rs.Recordcount%><br><br>

<select size=8>

<%

Do while not Rs.eof

%>

<option><% =Rs("title")%></option>

<%

rs.movenext

loop

%>

</select>

<%

rs.close

conn.close

set rs=nothing

set conn=nothing

%>

</body>

</html>         

本人利用ASP技術開發了煙台大學圖書館網上書目檢索程式,實踐證明該方法簡單、、實用、高效,是很值得學習的一種方法。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.