?? 常用的 asp activex.htm
字號(hào):
href="http://lzjx.com/w/main.asp?id=447&sx=jc">ASP上手“快捷方式”-數(shù)據(jù)..</A><BR>·<A
href="http://lzjx.com/w/main.asp?id=523&sx=jc">ASP的技術(shù)特點(diǎn)與使用方法</A><BR>·<A
href="http://lzjx.com/w/main.asp?id=522&sx=jc">SQL
Server訪問ADO</A><BR>·<A
href="http://lzjx.com/w/main.asp?id=521&sx=jc">ASP個(gè)人上手指南</A><BR></TD></TR></TBODY></TABLE><SPAN
class=l15></SPAN></TD>
<TD vAlign=top align=middle width=1 bgColor=#cccccc></TD>
<TD vAlign=top align=middle width=592 bgColor=#ffffff>
<TABLE cellSpacing=0 cellPadding=6 width="98%" border=0>
<TBODY>
<TR>
<TD class=xx vAlign=bottom height=30>■ 基礎(chǔ)教程 > 常用的 ASP
ActiveX</TD></TR></TBODY></TABLE>
<TABLE height=119 cellSpacing=6 cellPadding=3 width="99%" border=0>
<TBODY>
<TR>
<TD class=xk vAlign=top align=left width="50%"> 當(dāng)你用 ASP
編寫服務(wù)器端應(yīng)用程序時(shí),必須依靠 ActiveX 組件來強(qiáng)大 Web
應(yīng)用程序的功能,譬如:你需要連接數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)進(jìn)行在線操作等等,繼上篇介紹了 AD Rotator
組件后,本篇將接著給大家介紹其它一些常用的 ASP ActiveX 組件的使用方法。<BR><BR> 最近仍有不少朋友來信問我,
ASP 是否只能在 Microsoft IIS 上運(yùn)行,是否可以在非 NT 平臺(tái)上運(yùn)作?本來這個(gè)問題我已經(jīng)回答過很多遍了 :
我只是聽說過有某種可以支持的軟件,卻從沒見過。但一些熱情的朋友仍然孜孜不倦地來信詢問,于是在朋友們的盛情之下,我訪遍了 ASP
相關(guān)站點(diǎn),竟驚奇的發(fā)現(xiàn),原來 ASP 的確是可以運(yùn)行在其它非 NT 平臺(tái)上的,因此在本篇的開頭,我就給來信的朋友們簡(jiǎn)要介紹一下如何在非
NT 平臺(tái)上使用 ASP。<BR><BR> 要在非 NT 平臺(tái)上開發(fā)并運(yùn)行 ASP 應(yīng)用程序我們可以依賴于一套名為 Instant
ASP 的第三方軟件,它的廣告標(biāo)語(yǔ)非常吸引人“ASP Anytime, Anywhere”,我想所有 ASP
的開發(fā)者們看到如此的標(biāo)語(yǔ)必然興奮不已。這套由 Halcyon 軟件公司開發(fā)的軟件使得你無需重復(fù)開發(fā)原有 ASP
應(yīng)用程序即可以將它運(yùn)行在任何操作平臺(tái)上 ! 這樣非但節(jié)省了大量的開發(fā)時(shí)間,而且使得 ASP 真正成為了一種跨平臺(tái)的 Internet、
Intranet 或 Extranet 應(yīng)用程序。 Instant ASP 本身其實(shí)是一套基于 Java
的應(yīng)用程序,因此通過它你可以將基于 WEB 的 ASP 應(yīng)用程序運(yùn)行在任何平臺(tái)上,下表列出了 Instant ASP
目前版本所支持的操作平臺(tái)。 <BR><BR> 更令人吃驚的是 Instant ASP 不僅提供了 ASP
的運(yùn)作環(huán)境,而且它較目前市場(chǎng)上的 ASP 應(yīng)用還提供了更為強(qiáng)大和實(shí)用的功能,它將 ActiveX 組件和 Enterprise Java
Beans 或者 CORBA-compliant objects 組合起來,從而使 ASP 有了更為廣泛的應(yīng)用。它同樣提供了通過 ADO
接口訪問連接各種數(shù)據(jù)庫(kù),并生成動(dòng)態(tài)頁(yè)面的強(qiáng)大功能。對(duì)于開發(fā)者而言可以使用自己擅長(zhǎng)的編程語(yǔ)言或工具如 :Visual Basic,
JScript, VBScript, C++, Java, HTML, Delphi , MS Visual InterDev
等等來進(jìn)行開發(fā)。關(guān)于 Instant ASP 具體安裝和操作我就不在這里展開了,有興趣的朋友可以到它的站點(diǎn)上去看看
halcyonsoft.com,你還可以免費(fèi)下載一個(gè)試用版試試。 <BR> 繼上一篇中作者給大家介紹了 AD Rotator
組件的使用方法后,今天我們接著來看看其它的一些 ASP 常用組件。 <BR><BR> 一、 Database Access 組件
<BR><BR> 我們?cè)?WEB 服務(wù)器上運(yùn)用 WEB 應(yīng)用程序進(jìn)行的最常見和最實(shí)用的任務(wù)就是訪問服務(wù)器端的數(shù)據(jù)庫(kù)。而 ASP 內(nèi)建的
Database Access 組件使得我們能夠輕而易舉地通過 ActiveX Data Objects (ADO)
訪問存儲(chǔ)在服務(wù)器端的數(shù)據(jù)庫(kù)或其他表格化數(shù)據(jù)結(jié)構(gòu)中的信息。 ADO
是對(duì)當(dāng)前微軟所支持的數(shù)據(jù)庫(kù)進(jìn)行操作的最有效和最簡(jiǎn)單直接的方法,它是一種功能強(qiáng)大的數(shù)據(jù)訪問編程模式,從而使得大部分?jǐn)?shù)據(jù)源可編程的屬性得以直接擴(kuò)展到你的
Active Server 頁(yè)面上。可以使用 ADO 去編寫緊湊簡(jiǎn)明的腳本以便連接到 Open Database
Connectivity (ODBC) 兼容的數(shù)據(jù)庫(kù)和 OLE DB 兼容的數(shù)據(jù)源,這樣 ASP 程序員就可以訪問任何與 ODBC
兼容的數(shù)據(jù)庫(kù),包括 MS SQL SERVER、 Access、 Oracle
等等。如果您是一個(gè)對(duì)數(shù)據(jù)庫(kù)連接有一定了解的腳本編寫人員,那么您將發(fā)現(xiàn) ADO
命令語(yǔ)句并不復(fù)雜而且容易掌握。同樣地,如果您是一個(gè)經(jīng)驗(yàn)豐富的數(shù)據(jù)庫(kù)編程人員,您將會(huì)正確認(rèn)識(shí) ADO
的先進(jìn)的與語(yǔ)言無關(guān)性和查詢處理功能。熟悉 VB 數(shù)據(jù)庫(kù)編程的朋友會(huì)發(fā)現(xiàn) ADO 與 RDO (Remote Data Objects)
有某種類似的地方。但據(jù)說 ADO 的訪問的速度更快,內(nèi)存需要更小。 <BR> 下面給大家簡(jiǎn)要介紹一下利用 ASP 的
Database Access 組件通過 ADO 連接并操作 WEB 數(shù)據(jù)庫(kù)的步驟 <BR><BR> 第一步 :
指定想要連接的數(shù)據(jù)庫(kù),有 DSN 和 DSN-less 兩種方法。 <BR><BR> DSN(Data Source Name
數(shù)據(jù)源名稱 ): 建立一個(gè)系統(tǒng)數(shù)據(jù)源名稱,方法如下 : <BR><BR> 1、單擊“開始”,選設(shè)置控制面板。 <BR><BR>
2、雙擊圖標(biāo)“32 位 ODBC” , 將彈出一個(gè)對(duì)話框,選標(biāo)簽“System DSN” <BR><BR>
3、單擊“Add”添加一個(gè) DSN 入口 , 選擇如“Microsoft Access Drive”并確認(rèn)。 <BR><BR>
4、在“Data Source Name”欄里輸入你希望指定的 DSN,
然后單擊“Select”選擇數(shù)據(jù)庫(kù)存放位置,你可以按“Browse”來選取。 <BR><BR> 5、以上步驟完成后在 ASP
程序中指定 DSN,如下 : <BR><BR> < %connstr = "DSN"%>
<BR><BR> DSN-less: 是另一種通過在 ASP 文件里直接指定數(shù)據(jù)庫(kù)文件所在位置,而無需建立 DSN
的方法。由于許多公司沒有自己的 WEB 服務(wù)器,他們的網(wǎng)站往往是存放在遠(yuǎn)端的虛擬服務(wù)器上,因此要建立和修改 DSN
的設(shè)置比較麻煩。而使用 DSN-less 方法直接指定遠(yuǎn)端數(shù)據(jù)庫(kù)所在位置恰恰解決了這一問題,方法如下 :<BR><BR><
%<BR>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;"<BR>%><BR><BR><BR>
在指定了想要連接的數(shù)據(jù)庫(kù)后,就可以通過以下方法連接并打開數(shù)據(jù)庫(kù) : <BR><BR>< %<BR>Set Conn =
Server.CreateObject("ADODB.Connection")Conn.Open
constr<BR>%><BR><BR><BR><BR> 第二步 : 指定想要執(zhí)行的 SQL 指令,可以使用
RecordSet。 <BR><BR> 當(dāng)連接了數(shù)據(jù)庫(kù)后就可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,比如查詢、刪除、更新等等,這些操作都是通過 SQL
指令來完成的,如下例在數(shù)據(jù)庫(kù)表 datebase 中查詢所有姓名中有“A”的記錄 : <BR><BR><
%<BR>sql="select * from datebase where name like 'A%%'"<BR>Set rs =
Conn.Execute(sql)<BR>%><BR><BR><BR><BR> 盡管 Connection
對(duì)象簡(jiǎn)化了連接數(shù)據(jù)庫(kù)和查詢?nèi)蝿?wù),但 Connection 對(duì)象仍有許多不足。確切地說,檢索和顯示數(shù)據(jù)庫(kù)信息的 Connection
對(duì)象不能用于創(chuàng)建腳本,您必須確切知道要對(duì)數(shù)據(jù)庫(kù)作出的更改,然后才能使用查詢實(shí)現(xiàn)更改。對(duì)于檢索數(shù)據(jù)、檢查結(jié)果、更改數(shù)據(jù)庫(kù), ADO 提供了
Recordset 對(duì)象。正如它的名稱所暗示的那樣, Recordset
對(duì)象有許多您可以使用的特性,根據(jù)您的查詢限制,檢索并且顯示一組數(shù)據(jù)庫(kù)行,即記錄。 Recordset
對(duì)象保持查詢返回的記錄的位置,允許您一次一項(xiàng)逐步掃描結(jié)果。根據(jù) Recordset
對(duì)象的指針類型屬性設(shè)置,您可以滾動(dòng)和更新記錄。數(shù)據(jù)庫(kù)指針可以讓您在一組記錄中定位到特定的項(xiàng)。指針還用于檢索和檢查記錄,然后在這些記錄的基礎(chǔ)上執(zhí)行操作。
Recordset 對(duì)象有一些屬性,可用于精確地控制指針的行為,提高您檢查和更新結(jié)果的能力。 <BR> Recordset
的使用方法如下 : <BR><BR> Set rs = Server.CreateObject("ADODB.Recordset")
<BR><BR> rs.Open SQL 指令 , Conn, 1, 1 ' 讀取 <BR><BR> 或 <BR><BR>
rs.Open SQL 指令 , Conn, 1, 3 ' 新增、修改、或刪除 <BR><BR> 第三步 : 使用 RecordSet
屬性和方法,并顯示執(zhí)行的結(jié)果。 <BR><BR> 通過以上指令,我們創(chuàng)建了一個(gè)包含數(shù)據(jù)的游標(biāo)
(RecordSet)“rs”,事實(shí)上游標(biāo)是存儲(chǔ)在活動(dòng)內(nèi)存中的類似記錄和字段的數(shù)組的東西,當(dāng)通過 RecordSet
組件創(chuàng)建一個(gè)游標(biāo)時(shí),它從數(shù)據(jù)提供者的得到一個(gè)數(shù)據(jù)集,并用它來充實(shí)游標(biāo),我們可以想象 ADO 產(chǎn)生的 RecordSet
是一個(gè)象電子表格的記錄,它有一行行的記錄,在任何時(shí)候都有一行是它的當(dāng)前行,而 RecordSet 的字段是用 RecordSet 的
Field 集合表示的。下面列出了所創(chuàng)建的 RecordSet 對(duì)象 ( 游標(biāo) ) 的一些屬性和方法 : <BR>
rs.Fields.Count: RecordSet 對(duì)象的字段總數(shù)。 <BR><BR> rs(i).Name: 第 i
個(gè)字段的名稱, i 由 0 算起到 rs.Fields.Count-1。 <BR><BR> rs(i): 讀取第 i 個(gè)字段的數(shù)據(jù),
i 由 0 算起到 rs.Fields.Count-1。 <BR><BR> rs(" 字段名稱 "): 讀取指定字段的數(shù)據(jù)。
<BR><BR> rs.RecordCount: 游標(biāo)中的數(shù)據(jù)記錄總數(shù)。 <BR><BR> rs.EOF:
是否已指到最后一條記錄。 <BR><BR> rs.MoveNext: 將指標(biāo)移到下一筆記錄。 <BR><BR>
rs.MovePrev: 將指標(biāo)移到上一筆記錄。 <BR><BR> rs.MoveFirst: 將指標(biāo)移到第一筆記錄。
<BR><BR> rs.MoveLast: 將指標(biāo)移到最后一筆記錄。 <BR><BR> rs.Close: 關(guān)閉
RecordSet 對(duì)象 <BR><BR> 有關(guān) ADO 的其他介紹,作者將在今后給大家詳細(xì)講解。 <BR><BR> 二、
Content Linking 組件 <BR><BR> 如果你的網(wǎng)站有一系列相互關(guān)聯(lián)的頁(yè)面的話, Content Linking
組件將非常適合你的需求,它非但可以使你在這些頁(yè)面中建立一個(gè)目錄表,而且還可以在它們中間建立動(dòng)態(tài)連接,并自動(dòng)生成和更新目錄表及先前和后續(xù)的
Web 頁(yè)的導(dǎo)航鏈接。這對(duì)于列出聯(lián)機(jī)報(bào)刊、電子讀物網(wǎng)站以及論壇郵件是十分理想的選擇。<BR><BR> Content Linking
組件創(chuàng)建管理 URL 列表的 Nextlink 對(duì)象,要使用 Content Linking 組件,必須需要先創(chuàng)建 Content
Linking List 文件。 Content Linking
組件正是通過讀取這個(gè)文件來獲得處理我們希望鏈接的所有頁(yè)面的信息。事實(shí)上該文件是一個(gè)純文本文件,其內(nèi)容如下 : <BR>page1.htm
one <BR>page2.htm two <BR>page3.htm three <BR>page4.htm four
<BR>page5.htm five <BR>page6.htm six <BR><BR><BR> 這個(gè)文本文件的每行有如下形式 :
<BR><BR> url description comment <BR><BR> 其中, URL 是與頁(yè)面相關(guān)的超鏈地址,
description 提供了能被超鏈?zhǔn)褂玫奈谋拘畔ⅲ?comment 則包含了不被 Content Linking
組件解釋的注釋信息,它的作用如同程序中的注釋。 description 和 comment 參數(shù)是可選的。 <BR><BR>
下面我們來看看如何具體使用 Content Linking 組件 : <BR><BR>< html><BR><
head><BR>< meta http-equiv="Content-Type" content="text/html;
charset=gb2312"><BR>< title> 網(wǎng)絡(luò)電子讀物寶藏 <
/title><BR>< /head><BR>< body><BR>< p> 網(wǎng)絡(luò)電子讀物導(dǎo)航
<BR>< %<BR>Set Link =
Server.CreateObject("MSWC.NextLink")<BR>count =
Link.GetListCount("nextlink.txt") <BR>Dim I<BR>For I=1 to
count<BR>%><BR>< ul>< li>< a href="< %=
Link.GetNthURL("nextlink.txt", I) %>">< %=
Link.GetNthDescription("nextlink.txt", I) %>< /a><BR>< %
Next %><BR>< /body><BR>< /html><BR><BR><BR>
在以上代碼中,我們先用 GetListCount 方法確定在文件 nextlink.txt 中有多少條項(xiàng)目,然后利用循環(huán)語(yǔ)句,并使用
GetNthURL、 GetNthDescription 方法逐一將存儲(chǔ)在 nextlink.txt
文件中的內(nèi)容讀出并顯示給客戶端瀏覽器。 <BR><BR> 下面列出了 Content Linking 組件所有可使用的方法
GetListCount(file) 統(tǒng)計(jì)內(nèi)容鏈接列表文件中鏈接的項(xiàng)目數(shù)。 <BR><BR> GetNextURL(file)
獲取內(nèi)容鏈接列表文件中所列的下一頁(yè)的 URL。 <BR><BR> GetPreviousDescription(file)
獲取內(nèi)容鏈接列表文件中所列的上一頁(yè)的說明行。 <BR><BR> GetListIndex(file)
獲取內(nèi)容鏈接列表文件中當(dāng)前頁(yè)的索引。 <BR><BR> GetNthDescription(file,index)
獲取內(nèi)容鏈接列表文件中所列的第 N 頁(yè)的說明。 <BR><BR> GetPreviousUR(file)
獲取內(nèi)容鏈接列表文件中所列的上一頁(yè)的 URL。 <BR><BR> GetNextDescription(file)
獲取內(nèi)容鏈接列表文件中所列的下一頁(yè)的說明。 <BR><BR> GetNthURL(file,index)
獲取內(nèi)容鏈接列表文件中所列的第 N 頁(yè)的說明。
<BR><BR> 在我們創(chuàng)建了網(wǎng)站的總導(dǎo)航頁(yè)面后,我們當(dāng)然還希望在每一頁(yè)中添加一個(gè)“上一頁(yè)”、“下一頁(yè)”的導(dǎo)航超鏈,下面我們就來看看如何實(shí)現(xiàn)導(dǎo)航超鏈。<BR><BR> 由于考慮到你的網(wǎng)站可能包含了上千或更多的頁(yè)面,所以我們不可能在每一個(gè)頁(yè)面中都編寫實(shí)現(xiàn)導(dǎo)航超鏈的
ASP 代碼。因此,我們必須利用前幾篇中所學(xué)到的服務(wù)器端包容 SSI,這樣就避免了大量的重復(fù)作業(yè),請(qǐng)看下例 : <BR> <
!--#include file="nextprev.inc"--> <BR><BR> 只要將這端代碼放在每個(gè)頁(yè)面中即可。
nextprev.inc 文件的內(nèi)容如下 : <BR><BR>< %<BR>Set Link =
Server.CreateObject("MSWC.NextLink")<BR>count =
Link.GetListCount("nextlink.txt") <BR>current =
link.GetListIndex("nextlink.txt")<BR>If current > 1
Then<BR>%><BR>< a href="< %=
Link.GetPreviousURL("nextlink.txt") %>"> 上一頁(yè) <
/a><BR>< %<BR>End If<BR>If current < count
Then<BR>%><BR>< a href="< %=
Link.GetNextURL("nextlink.txt") %>"> 下一頁(yè) < /a><BR>< %
End If
%><BR><BR> 今天的學(xué)習(xí)又到此結(jié)束了,在這里我要再次感謝所有關(guān)心我的文章的朋友們,你們的來信給了我很大的鼓舞,不過請(qǐng)大家不要再稱我為“老師”,其實(shí)我也和你們一樣是在不斷的學(xué)習(xí)和摸索中,有問題我們可以一起探討,我的文章中肯定還存在很多不足或漏洞,也希望大家發(fā)現(xiàn)后能及時(shí)向我提出。由于近來
ASP 已經(jīng)在國(guó)內(nèi)的網(wǎng)站中廣泛運(yùn)用起來,所以應(yīng)朋友們的要求,在國(guó)內(nèi) ASP 高手飛鳥的熱情幫助下,我決定寫一些 ASP
應(yīng)用實(shí)例作為現(xiàn)在這篇文章的姊妹篇,這樣也就可以為大家提供一些真正實(shí)用的東西了,敬請(qǐng)關(guān)注。 <BR><BR>作者:書生
</TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="98%" border=0>
<TBODY>
<TR>
<TD>■今日推薦:<A
href="http://lzjx.com/w/main.asp?id=388&sx=jc">ASP內(nèi)建對(duì)象Serv</A>
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=800 bgColor=#ffffff border=0>
<TBODY>
<TR>
<TD background="常用的 ASP ActiveX.files/qw39.gif"></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=1 cellPadding=5 width=800 bgColor=#ffffff border=0>
<TBODY>
<TR>
<TD class=N noWrap align=middle>
<TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#ffffff
border=0><TBODY>
<TR>
<TD
background="常用的 ASP ActiveX.files/qw39.gif"></TD></TR></TBODY></TABLE><BR>本網(wǎng)站是學(xué)習(xí)網(wǎng)站,內(nèi)容整理大多來自互聯(lián)網(wǎng),盡量標(biāo)明了出處,如果侵犯了您的權(quán)力請(qǐng)通知我,立即糾正<BR>歡迎提出寶貴建議,提供相關(guān)資料,以便相互學(xué)習(xí),共同提高!<BR>
<OBJECT
codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0
height=18 width=103 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000><PARAM NAME="BGCOLOR" VALUE=""><PARAM NAME="movie" VALUE="../images/21sg.swf"><PARAM NAME="quality" VALUE="high">
<embed src="../images/21sg.swf"
quality="high"
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
type="application/x-shockwave-flash" width="103" height="18" ></embed>
</OBJECT></TD></TR>
<TR>
<TD height=79> </TD></TR>
<TR>
<TD align=middle></TD></TR></TBODY></TABLE></CENTER></BODY></HTML>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -