搜索的用戶組別: 遊客[0級]
搜索選項 要有附件 作者搜索
搜索範圍
Dedo 論壇搜索系統
DC論壇影城 ad.vbox
香港易存網庫 [服務器租用|easyhost.com.hk] 域名 電郵 VPN 網頁寄存 快速穩定 雲端 Hosting Server 電話:(852)-21550486 / (86)-21-61979257 服務:[ 資訊, 電郵服務, 資訊網絡, 網頁儲存, 網頁設計, 網站設計, 網頁寄存, 網站寄存, 主機租用, 主機托管, 伺服器管理, 伺服器租用, 伺服器托管, 服務器租用, 服務器托管, 香港服務器托管, 香港服務器租用, 域名註冊, 網站地圖, 客戶優惠, 報章報導, web hosting, hosting, email service, web page design, web design, dedicated server, dedicated host, server management, server colocation, colocation, Virtual Host, MPLS, CDN, IPLC ]
返回列表 發帖

[討論] 常用的 ASP ActiveX 元件

當你用 ASP 撰寫服務器端應用程式時,必須依靠 ActiveX 元件來強大 Web 應用程式的弁遄A譬如:你需要連接資料庫,對資料庫進行線上操作等等,繼上篇介紹了 AD Rotator 元件後,本篇將接著給大家介紹其它一些常用的 ASP ActiveX 元件的使用方法。
最近仍有不少朋友來信問我, ASP 是否只能在 Microsoft IIS 上執行,是否可以在非 NT 平台上運作?本來這個問題我已經回答過很多遍了 : 我只是聽說過有某種可以支援的軟體,卻從沒見過。但一些熱情的朋友仍然孜孜不倦地來信詢問,於是在朋友們的盛情之下,我訪遍了 ASP 相關站台,竟驚奇的發現,原來 ASP 的確是可以執行在其它非 NT 平台上的,因此在本篇的開頭,我就給來信的朋友們簡要介紹一下如何在非 NT 平台上使用 ASP。

要在非 NT 平台上開發並執行 ASP 應用程式我們可以依賴於一套名為 Instant ASP 的第三方軟體,它的廣告標語非常吸引人「ASP Anytime, Anywhere」,我想所有 ASP 的開發者們看到如此的標語必然興奮不已。這套由 Halcyon 軟體公司開發的軟體使得你無需重複開發原有 ASP 應用程式即可以將它執行在任何操作平台上 ! 這樣非但節省了大量的開發時間,而且使得 ASP 真正成為了一種跨平台的 Internet、 Intranet 或 Extranet 應用程式。 Instant ASP 本身其實是一套基於 Java 的應用程式,因此透過它你可以將基於 WEB 的 ASP 應用程式執行在任何平台上,下表列出了 Instant ASP 目前版本所支援的操作平台。


更令人吃驚的是 Instant ASP 不僅提供了 ASP 的運作環境,而且它較目前市場上的 ASP 應用還提供了更為強大和實用的弁遄A它將 ActiveX 元件和 Enterprise Java Beans 或者 CORBA-compliant objects 組合起來,從而使 ASP 有了更為廣泛的應用。它同樣提供了透過 ADO 接口訪問連接各種資料庫,並產生動態頁面的強大弁遄C對於開發者而言可以使用自己擅長的程式化語言或工具如 :Visual Basic, Jscript, VBScript, C++, Java, HTML, Delphi , MS Visual InterDev 等等來進行開發。關於 Instant ASP 實際安裝和操作我就不在這裡展開了,有興趣的朋友可以到它的站台上去看看 halcyonsoft.com,你還可以免費下載一個試用版試試。
繼上一篇中作者給大家介紹了 AD Rotator 元件的使用方法後,今天我們接著來看看其它的一些 ASP 常用元件。
一、 Database Access 元件
我們在 WEB 服務器上運用 WEB 應用程式進行的最常見和最實用的任務就是訪問服務器端的資料庫。而 ASP 內建的 Database Access 元件使得我們能夠輕而易舉地透過 ActiveX Data Objects (ADO) 訪問存儲在服務器端的資料庫或其他表格化資料結構中的資訊。 ADO 是對目前微軟所支援的資料庫進行操作的最有效和最簡單直接的方法,它是一種弁鈺j大的資料訪問程式化模式,從而使得大部分資料源可程式化的屬性得以直接擴充到你的 Active Server 頁面上。可以使用 ADO 去撰寫緊湊簡明的Script以便連接到 Open Database Connectivity (ODBC) 相容的資料庫和 OLE DB 相容的資料源,這樣 ASP 程式設計師就可以訪問任何與 ODBC 相容的資料庫,包括 MS SQL SERVER、Access、Oracle 等等。如果您是一個對資料庫連接有一定瞭解的Script撰寫人員,那麼您將發現 ADO 命令語法並不複雜而且容易掌握。同樣地,如果您是一個經驗豐富的資料庫程式化人員,您將會正確認識 ADO 的先進的與語言無關性和查詢處理弁遄C熟悉 VB 資料庫程式化的朋友會發現 ADO 與RDO (Remote Data Objects) 有某種類似的地方。但據說 ADO 的訪問的速度更快,記憶體需要更小。
下面給大家簡要介紹一下利用 ASP 的 Database Access 元件透過 ADO 連接並操作 WEB 資料庫的步驟
第一步 : 指定想要連接的資料庫,有 DSN 和 DSN-less 兩種方法。
DSN(Data Source Name 資料源名稱 ): 建立一個系統資料源名稱,方法如下 :
1、單擊「開始」,選設定控制面板。
2、雙擊圖示「32 位 ODBC」 , 將跳出一個對話框,選標籤「System DSN」
3、單擊「Add」新增一個 DSN 入口 , 選擇如「Microsoft Access Drive」並確認。
4、在「Data Source Name」欄裡輸入你希望指定的 DSN, 然後單擊「Select」選擇資料庫存放位置,你可以按「Browse」來選取。
5、以上步驟完成後在 ASP 程式中指定 DSN,如下 :
%connstr = DSN%
DSN-less: 是另一種透過在 ASP 文件裡直接指定資料庫文件所在位置,而無需建立 DSN 的方法。由於釵h公司沒有自己的 WEB 服務器,他們的網站往往是存放在遠端的虛擬服務器上,因此要建立和修改 DSN 的設定比較麻煩。而使用 DSN-less 方法直接指定遠端資料庫所在位置恰恰解決了這一問題,方法如下
:

%
connstr = DBQ=+server.mappath(database/source.mdb)+;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;ImplicitCommitSync=Yes;MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes;
%


在指定了想要連接的資料庫後,就可以透過以下方法連接並開啟資料庫 :
%
Set Conn = Server.CreateObject(ADODB.Connection)Conn.Open constr
%


第二步 : 指定想要執行的 SQL 指令,可以使用 RecordSet。
當連接了資料庫後就可以對資料庫進行操作,比如查詢、刪除、更新等等,這些操作都是透過 SQL 指令來完成的,如下例在資料庫表 datebase 中查詢所有姓名中有「A」的記錄 :
%
sql=select * from datebase where name like A%%
Set rs = Conn.Execute(sql)
%
儘管 Connection 對像簡化了連接資料庫和查詢任務,但 Connection 對像仍有釵h不足。確切地說,檢索和顯示資料庫資訊的 Connection 對像不能用於建立Script,您必須確切知道要對資料庫作出的更改,然後才能使用查詢實做更改。對於檢索資料、檢查結果、更改資料庫, ADO 提供了 Recordset 對象。正如它的名稱所暗示的那樣, Recordset 對像有釵h您可以使用的特性,根據您的查詢限製,檢索並且顯示一組資料庫行,即記錄。 Recordset 對像保持查詢傳回的記錄的位置,允陰z一次一項逐步掃瞄結果。根據 Recordset 對象的指針類型屬性設定,您可以捲動和更新記錄。資料庫指針可以讓您在一組記錄中定位到特定的項。指針還用於檢索和檢查記錄,然後在這些記錄的基礎上執行操作。 Recordset 對像有一些屬性,可用於精確地控制指針的行為,提高您檢查和更新結果的能力。
Recordset 的使用方法如下 :
Set rs = Server.CreateObject(ADODB.Recordset)
rs.Open SQL 指令 , Conn, 1, 1 讀取

rs.Open SQL 指令 , Conn, 1, 3 新增、修改、或刪除
第三步 : 使用 RecordSet 屬性和方法,並顯示執行的結果。
透過以上指令,我們建立了一個包含資料的游標 (RecordSet)「rs」,事實上游標是存儲在活動記憶體中的類似記錄和字段的數組的東西,當透過 RecordSet 元件建立一個游標時,它從資料提供者的得到一個資料集,並用它來充實游標,我們可以想像 ADO 產生的 RecordSet 是一個像電子錶格的記錄,它有一行行的記錄,在任何時候都有一行是它的目前行,而 RecordSet 的字段是用 RecordSet 的Field 集合表示的。下面列出了所建立的 RecordSet 對像 (游標 )的一些屬性和方法
:
rs.Fields.Count: RecordSet 對象的字段總數。
rs(I).Name: 第 I 個字段的名稱, I 由 0 算起到 rs.Fields.Count-1。
rs(I): 讀取第 I 個字段的資料, I 由 0 算起到 rs.Fields.Count-1。
rs( 字段名稱 ): 讀取指定字段的資料。
rs.RecordCount: 游標中的資料記錄總數。
rs.EOF: 是否已指到最後一條記錄。
rs.MoveNext: 將指標移到下一筆記錄。
rs.MovePrev: 將指標移到上一筆記錄。
rs.MoveFirst: 將指標移到第一筆記錄。
rs.MoveLast: 將指標移到最後一筆記錄。
rs.Close: 關閉 RecordSet 對像
有關 ADO 的其他介紹,作者將在今後給大家詳細講解。
二、 Content Linking 元件
如果你的網站有一系列相互關聯的頁面的話, Content Linking 元件將非常適合你的需求,它非但可以使你在這些頁面中建立一個目錄表,而且還可以在它們中間建立動態連接,並自動產生和更新目錄表及先前和後續的 Web 頁的導航連結。這對於列出聯機報刊、電子讀物網站以及論壇信件是十分理想的選擇。

Content Linking 元件建立管理 URL 列表的 Nextlink 對象,要使用 Content Linking 元件,必須需要先建立 Content Linking List 文件。 Content Linking 元件正是透過讀取這個文件來獲致處理我們希望連結的所有頁面的資訊。事實上該文件是一個純文字文件,其內容如下 :
page1.htm one
page2.htm two
page3.htm three
page4.htm four
page5.htm five
page6.htm six


這個文字文件的每行有如下形式 :
url description comment
其中, URL 是與頁面相關的超鏈地址, description 提供了能被超鏈使用的文字資訊, comment 則包含了不被 Content Linking 元件解釋的註釋資訊,它的作用如同程式中的註釋。 Description 和 comment 參數是可選的。
下面我們來看看如何實際使用 Content Linking 元件 :
html
head
meta http-equiv=Content-Type content=text/html; charset=gb2312
title 網路電子讀物寶藏 /title
/head
body
p 網路電子讀物導航
%
Set Link = Server.CreateObject(MSWC.NextLink)
count = Link.GetListCount(nextlink.txt)
Dim I
For I=1 to count
%
ul li a href= %= Link.GetNthURL(nextlink.txt, I) % %= Link.GetNthDescription(nextlink.txt, I) % /a
% Next %
/body
/html


在以上原始碼中,我們先用 GetListCount 方法確定在文件 nextlink.txt 中有多少條項目,然後利用循環語法,並使用 GetNthURL、 GetNthDescription 方法逐一將存儲在 nextlink.txt 文件中的內容讀出並顯示給Client端瀏覽器。
下面列出了 Content Linking 元件所有可使用的方法 GetListCount(file) 統計內容連結列表文件中連結的項目數。
GetNextURL(file) 取得內容連結列表文件中所列的下一頁的 URL。
GetPreviousDescription(file) 取得內容連結列表文件中所列的上一頁的說明行。
GetListIndex(file) 取得內容連結列表文件中目前頁的索引。
GetNthDescription(file,index) 取得內容連結列表文件中所列的第 N 頁的說明。
GetPreviousUR(file) 取得內容連結列表文件中所列的上一頁的 URL。
GetNextDescription(file) 取得內容連結列表文件中所列的下一頁的說明。
GetNthURL(file,index) 取得內容連結列表文件中所列的第 N 頁的說明。
在我們建立了網站的總導航頁面後,我們當然還希望在每一頁中新增一個「上一頁」、「下一頁」的導航超鏈,下面我們就來看看如何實做導航超鏈。

由於考慮到你的網站可能包含了上千或更多的頁面,所以我們不可能在每一個頁面中都撰寫實做導航超鏈的 ASP 原始碼。因此,我們必須利用前幾篇中所學到的服務器端包容 SSI,這樣就避免了大量的重複作業,請看下例 :
!--#include file=nextprev.inc--
只要將這端原始碼放在每個頁面中即可。 Nextprev.inc 文件的內容如下 :
%
Set Link = Server.CreateObject(MSWC.NextLink)
count = Link.GetListCount(nextlink.txt)
current = link.GetListIndex(nextlink.txt)
If current 1 Then
%
a href= %= Link.GetPreviousURL(nextlink.txt) % 上一頁 /a
%
End If
If current count Then
%
a href= %= Link.GetNextURL(nextlink.txt) % 下一頁 /a
% End If %

感謝分享這樣的好東西...

TOP

返回列表