當(dāng)前位置:首頁(yè)文章首頁(yè) IT學(xué)院 IT技術(shù)

一些常用ASP ActiveX 組件使用方法的介紹

作者:  來(lái)源:  發(fā)布時(shí)間:2011-6-14 11:37:48  點(diǎn)擊:

這篇文章將給大家介紹一些常用ASP ActiveX 組件使用方法,希望能幫助到大家。

當(dāng)你用 ASP 編寫(xiě)服務(wù)器端應(yīng)用程序時(shí),必須依靠 ActiveX 組件來(lái)強(qiáng)大 Web 應(yīng)用程序的功能,譬如:你需要連接數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)進(jìn)行在線操作等等,

    最近仍有不少朋友來(lái)信問(wèn)我, ASP 是否只能在 Microsoft IIS 上運(yùn)行,是否可以在非 NT 平臺(tái)上運(yùn)作?本來(lái)這個(gè)問(wèn)題我已經(jīng)回答過(guò)很多遍了 : 我只是聽(tīng)說(shuō)過(guò)有某種可以支持的軟件,卻從沒(méi)見(jiàn)過(guò)。但一些熱情的朋友仍然孜孜不倦地來(lái)信詢(xún)問(wèn),于是在朋友們的盛情之下,我訪遍了 ASP 相關(guān)站點(diǎn),竟驚奇的發(fā)現(xiàn),原來(lái) ASP 的確是可以運(yùn)行在其它非 NT 平臺(tái)上的,因此在本篇的開(kāi)頭,我就給來(lái)信的朋友們簡(jiǎn)要介紹一下如何在非 NT 平臺(tái)上使用 ASP。

    要在非 NT 平臺(tái)上開(kāi)發(fā)并運(yùn)行 ASP 應(yīng)用程序我們可以依賴(lài)于一套名為 Instant ASP 的第三方軟件,它的廣告標(biāo)語(yǔ)非常吸引人“ASP Anytime, Anywhere”,我想所有 ASP 的開(kāi)發(fā)者們看到如此的標(biāo)語(yǔ)必然興奮不已。這套由 Halcyon 軟件公司開(kāi)發(fā)的軟件使得你無(wú)需重復(fù)開(kāi)發(fā)原有 ASP 應(yīng)用程序即可以將它運(yùn)行在任何操作平臺(tái)上 ! 這樣非但節(jié)省了大量的開(kāi)發(fā)時(shí)間,而且使得 ASP 真正成為了一種跨平臺(tái)的 Internet、 Intranet 或 Extranet 應(yīng)用程序。 Instant ASP 本身其實(shí)是一套基于 Java 的應(yīng)用程序,因此通過(guò)它你可以將基于 WEB 的 ASP 應(yīng)用程序運(yùn)行在任何平臺(tái)上,下表列出了 Instant ASP 目前版本所支持的操作平臺(tái)。

    更令人吃驚的是 Instant ASP 不僅提供了 ASP 的運(yùn)作環(huán)境,而且它較目前市場(chǎng)上的 ASP 應(yīng)用還提供了更為強(qiáng)大和實(shí)用的功能,它將 ActiveX 組件和 EntERPrise Java Beans 或者 CORBA-compliant objects 組合起來(lái),從而使 ASP 有了更為廣泛的應(yīng)用。它同樣提供了通過(guò) ADO 接口訪問(wèn)連接各種數(shù)據(jù)庫(kù),并生成動(dòng)態(tài)頁(yè)面的強(qiáng)大功能。對(duì)于開(kāi)發(fā)者而言可以使用自己擅長(zhǎng)的編程語(yǔ)言或工具如 :Visual Basic, JScript, VBScript, C++, Java, HTML, Delphi , MS Visual InterDev 等等來(lái)進(jìn)行開(kāi)發(fā)。關(guān)于 Instant ASP 具體安裝和操作我就不在這里展開(kāi)了,有興趣的朋友可以到它的站點(diǎn)上去看看 halcyonsoft.com,你還可以免費(fèi)下載一個(gè)試用版試試。

    今天我們接著來(lái)看看其它的一些 ASP 常用組件。

  一、 Database Access 組件

    我們?cè)?WEB 服務(wù)器上運(yùn)用 WEB 應(yīng)用程序進(jìn)行的最常見(jiàn)和最實(shí)用的任務(wù)就是訪問(wèn)服務(wù)器端的數(shù)據(jù)庫(kù)。而 ASP 內(nèi)建的 Database Access 組件使得我們能夠輕而易舉地通過(guò) ActiveX Data Objects (ADO) 訪問(wèn)存儲(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ù)訪問(wèn)編程模式,從而使得大部分?jǐn)?shù)據(jù)源可編程的屬性得以直接擴(kuò)展到你的 Active Server 頁(yè)面上?梢允褂 ADO 去編寫(xiě)緊湊簡(jiǎn)明的腳本以便連接到 Open Database Connectivity (ODBC) 兼容的數(shù)據(jù)庫(kù)和 OLE DB 兼容的數(shù)據(jù)源,這樣 ASP 程序員就可以訪問(wèn)任何與 ODBC 兼容的數(shù)據(jù)庫(kù),包括 MS SQL SERVER、 Access、 Oracle 等等。如果您是一個(gè)對(duì)數(shù)據(jù)庫(kù)連接有一定了解的腳本編寫(xiě)人員,那么您將發(fā)現(xiàn) ADO 命令語(yǔ)句并不復(fù)雜而且容易掌握。同樣地,如果您是一個(gè)經(jīng)驗(yàn)豐富的數(shù)據(jù)庫(kù)編程人員,您將會(huì)正確認(rèn)識(shí) ADO 的先進(jìn)的與語(yǔ)言無(wú)關(guān)性和查詢(xún)處理功能。熟悉 VB 數(shù)據(jù)庫(kù)編程的朋友會(huì)發(fā)現(xiàn) ADO 與 RDO (Remote Data Objects) 有某種類(lèi)似的地方。但據(jù)說(shuō) ADO 的訪問(wèn)的速度更快,內(nèi)存需要更小。

    下面給大家簡(jiǎn)要介紹一下利用 ASP 的 Database Access 組件通過(guò) ADO 連接并操作 WEB 數(shù)據(jù)庫(kù)的步驟

  第一步 : 指定想要連接的數(shù)據(jù)庫(kù),有 DSN 和 DSN-less 兩種方法。
  DSN(Data Source Name 數(shù)據(jù)源名稱(chēng) ): 建立一個(gè)系統(tǒng)數(shù)據(jù)源名稱(chēng),方法如下 :
  1、單擊“開(kāi)始”,選設(shè)置控制面板。
  2、雙擊圖標(biāo)“32 位 ODBC” , 將彈出一個(gè)對(duì)話框,選標(biāo)簽“System DSN”
  3、單擊“Add”添加一個(gè) DSN 入口 , 選擇如“Microsoft Access Drive”并確認(rèn)。
  4、在“Data Source Name”欄里輸入你希望指定的 DSN, 然后單擊“Select”選擇數(shù)據(jù)庫(kù)存放位置,你可以按“Browse”來(lái)選取。
  5、以上步驟完成后在 ASP 程序中指定 DSN,如下 :

  < % connstr = "DSN"%>

    DSN-less: 是另一種通過(guò)在 ASP 文件里直接指定數(shù)據(jù)庫(kù)文件所在位置,而無(wú)需建立 DSN 的方法。由于許多公司沒(méi)有自己的 WEB 服務(wù)器,他們的網(wǎng)站往往是存放在遠(yuǎn)端的虛擬服務(wù)器上,因此要建立和修改 DSN 的設(shè)置比較麻煩。而使用 DSN-less 方法直接指定遠(yuǎn)端數(shù)據(jù)庫(kù)所在位置恰恰解決了這一問(wèn)題,方法如下 :

  < % connstr = "DSN"%>

    DSN-less: 是另一種通過(guò)在 ASP 文件里直接指定數(shù)據(jù)庫(kù)文件所在位置,而無(wú)需建立 DSN 的方法。由于許多公司沒(méi)有自己的 WEB 服務(wù)器,他們的網(wǎng)站往往是存放在遠(yuǎn)端的虛擬服務(wù)器上,因此要建立和修改 DSN 的設(shè)置比較麻煩。而使用 DSN-less 方法直接指定遠(yuǎn)端數(shù)據(jù)庫(kù)所在位置恰恰解決了這一問(wèn)題,方法如下 :

  <%
  connstr="DBQ="+server.mappath("database/source.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
  %>

  在指定了想要連接的數(shù)據(jù)庫(kù)后,就可以通過(guò)以下方法連接并打開(kāi)數(shù)據(jù)庫(kù) :

  < %
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open constr
  %>

  第二步 : 指定想要執(zhí)行的 SQL 指令,可以使用 RecordSet。
  當(dāng)連接了數(shù)據(jù)庫(kù)后就可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,比如查詢(xún)、刪除、更新等等,這些操作都是通過(guò) SQL 指令來(lái)完成的,如下例在數(shù)據(jù)庫(kù)表 datebase 中查詢(xún)所有姓名中有“A”的記錄 :

  < %
  sql="select * from datebase where name like "A%%""
  Set rs = Conn.Execute(sql)
  %>

    盡管 Connection 對(duì)象簡(jiǎn)化了連接數(shù)據(jù)庫(kù)和查詢(xún)?nèi)蝿?wù),但 Connection 對(duì)象仍有許多不足。確切地說(shuō),檢索和顯示數(shù)據(jù)庫(kù)信息的 Connection 對(duì)象不能用于創(chuàng)建腳本,您必須確切知道要對(duì)數(shù)據(jù)庫(kù)作出的更改,然后才能使用查詢(xún)實(shí)現(xiàn)更改。對(duì)于檢索數(shù)據(jù)、檢查結(jié)果、更改數(shù)據(jù)庫(kù), ADO 提供了 Recordset 對(duì)象。正如它的名稱(chēng)所暗示的那樣, Recordset 對(duì)象有許多您可以使用的特性,根據(jù)您的查詢(xún)限制,檢索并且顯示一組數(shù)據(jù)庫(kù)行,即記錄。 Recordset 對(duì)象保持查詢(xún)返回的記錄的位置,允許您一次一項(xiàng)逐步掃描結(jié)果。根據(jù) Recordset 對(duì)象的指針類(lèi)型屬性設(shè)置,您可以滾動(dòng)和更新記錄。數(shù)據(jù)庫(kù)指針可以讓您在一組記錄中定位到特定的項(xiàng)。指針還用于檢索和檢查記錄,然后在這些記錄的基礎(chǔ)上執(zhí)行操作。 Recordset 對(duì)象有一些屬性,可用于精確地控制指針的行為,提高您檢查和更新結(jié)果的能力。

  Recordset 的使用方法如下 :

  Set rs = Server.CreateObject("ADODB.Recordset")
  rs.Open SQL 指令 , Conn, 1, 1 " 讀取
  或
  rs.Open SQL 指令 , Conn, 1, 3 " 新增、修改、或刪除

  第三步 : 使用 RecordSet 屬性和方法,并顯示執(zhí)行的結(jié)果。

    通過(guò)以上指令,我們創(chuàng)建了一個(gè)包含數(shù)據(jù)的游標(biāo) (RecordSet)“rs”,事實(shí)上游標(biāo)是存儲(chǔ)在活動(dòng)內(nèi)存中的類(lèi)似記錄和字段的數(shù)組的東西,當(dāng)通過(guò) RecordSet 組件創(chuàng)建一個(gè)游標(biāo)時(shí),它從數(shù)據(jù)提供者的得到一個(gè)數(shù)據(jù)集,并用它來(lái)充實(shí)游標(biāo),我們可以想象 ADO 產(chǎn)生的 RecordSet 是一個(gè)象電子表格的記錄,它有一行行的記錄,在任何時(shí)候都有一行是它的當(dāng)前行,而 RecordSet 的字段是用 RecordSet 的 Field 集合表示的。下面列出了所創(chuàng)建的 RecordSet 對(duì)象 ( 游標(biāo) ) 的一些屬性和方法 :

  rs.Fields.Count: RecordSet 對(duì)象的字段總數(shù)。
  rs(i).Name: 第 i 個(gè)字段的名稱(chēng), i 由 0 算起到 rs.Fields.Count-1。
  rs(i): 讀取第 i 個(gè)字段的數(shù)據(jù), i 由 0 算起到 rs.Fields.Count-1。
  rs(" 字段名稱(chēng) "): 讀取指定字段的數(shù)據(jù)。
  rs.RecordCount: 游標(biāo)中的數(shù)據(jù)記錄總數(shù)。
  rs.EOF: 是否已指到最后一條記錄。
  rs.MoveNext: 將指標(biāo)移到下一筆記錄。
  rs.MovePrev: 將指標(biāo)移到上一筆記錄。
  rs.MoveFirst: 將指標(biāo)移到第一筆記錄。
  rs.MoveLast: 將指標(biāo)移到最后一筆記錄。
  rs.Close: 關(guān)閉 RecordSet 對(duì)象

相關(guān)軟件

相關(guān)文章

文章評(píng)論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z