ASP 3.0高級(jí)編程(三十七)_ASP教程
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!
推薦:asp.net利用RAR實(shí)現(xiàn)文件壓縮解壓縮如果服務(wù)器上安裝了RAR程序,那么asp.net可以調(diào)用RAR實(shí)現(xiàn)文件壓縮與解壓縮。 不過(guò)要注意的是,由于Web程序不能直接調(diào)用客戶端的程序(除非用ActiveX,ActiveX幾乎被廢棄),所以如果要想實(shí)現(xiàn)
8.2.5 Stream對(duì)象Stream對(duì)象用于訪問(wèn)節(jié)點(diǎn)的內(nèi)容,比如一個(gè)E-Mail消息,或一個(gè)Web頁(yè)面。利用Stream對(duì)象可以訪問(wèn)文件或資源的真實(shí)內(nèi)容。因此,結(jié)合Record和Recordset對(duì)象,不僅可以訪問(wèn)Web服務(wù)器上的文件或email消息,還可以訪問(wèn)相應(yīng)的內(nèi)容。這樣,就可以創(chuàng)建一個(gè)只使用ADO去訪問(wèn)郵件系統(tǒng)的郵件客戶。這也許不會(huì)有太多的優(yōu)點(diǎn),但意味著可不必了解郵件系統(tǒng)的API或?qū)ο竽P�,減少了學(xué)習(xí)上的彎路。
Stream的另一個(gè)用途是XML,可以訪問(wèn)一系列作為XML流的數(shù)據(jù)(結(jié)構(gòu)化或半結(jié)構(gòu)化)。
Stream對(duì)象用來(lái)處理二進(jìn)制數(shù)據(jù),所以,可以用來(lái)處理BLOB類型的數(shù)據(jù),比如數(shù)據(jù)庫(kù)中的圖像或大文本數(shù)據(jù)。
同樣,在本書第11、12章中你會(huì)看到更多的有關(guān)Stream對(duì)象的例子。
8.2.6 集合
ADO對(duì)象庫(kù)中有一些集合,每個(gè)集合都有零個(gè)或更多個(gè)與其關(guān)聯(lián)的對(duì)象的拷貝�?梢允褂孟嗤拇a結(jié)構(gòu)去遍歷這些集合。
在VBScript中的語(yǔ)法是:
For Each object In Collection
' Do something with object
Next
例如,遍歷一個(gè)Recordset對(duì)象的Fields集:
For Each objField In rs.Fields
Response.Write objField.Name & "<BR>"
Next
如果選擇JScript,那么可以使用Enumerator對(duì)象:
for (objField = new Enumerator(rs.Fields);
!objField.atEnd(); objField.moveNext())
Response.Write (objField.item().Name '<BR>');
1. Fields集合
Fields集合擁有與記錄集或記錄關(guān)聯(lián)的Field對(duì)象。對(duì)基于結(jié)構(gòu)化數(shù)據(jù)的記錄集,比如SQL數(shù)據(jù),字段相應(yīng)于數(shù)據(jù)中的列,并含有列的詳細(xì)內(nèi)容,比如名稱、數(shù)據(jù)類型、長(zhǎng)度等等。在以后幾章看到大量的關(guān)于Fields集合的例子。
對(duì)于半結(jié)構(gòu)化的數(shù)據(jù),對(duì)象的屬性相應(yīng)于字段。在第12章會(huì)看到更多的相關(guān)的介紹。
2. Parameters集合
Parameters集合僅被Command對(duì)象使用,確定在存儲(chǔ)命令中的參數(shù)。SQL數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程頻繁地使用參數(shù),并允許數(shù)據(jù)傳入和傳出預(yù)定義的SQL語(yǔ)句。如果擁有向ADO返回信息的參數(shù),則會(huì)十分有用,因?yàn)檫@樣從存儲(chǔ)過(guò)程中返回的就不只是一個(gè)記錄集。例如,考慮一個(gè)更新多個(gè)表然后返回一個(gè)記錄集的復(fù)雜存儲(chǔ)過(guò)程,可以用一個(gè)輸出參數(shù)顯示更新了多少條記錄。
另一個(gè)使用參數(shù)的理由是性能問(wèn)題,特別是在僅僅需要從存儲(chǔ)過(guò)程返回單個(gè)值的時(shí)候。在這種情況下,沒(méi)有創(chuàng)建記錄集的必要,只需要保存一個(gè)值即可,因而不需要返回記錄集,而返回輸出參數(shù)的值是更為有效的方法。
在第9章會(huì)看到有關(guān)Parameter集合的詳細(xì)介紹。
3. Error集合
Error集合包含因運(yùn)行命令而引起的上一次ADO或OLE DB提供者錯(cuò)誤的詳細(xì)內(nèi)容,只能被Connection對(duì)象訪問(wèn)。可能會(huì)覺(jué)得這是個(gè)限制,因?yàn)椴槐仫@式定義Connection對(duì)象,但可以通過(guò)Command、Recordset和Record對(duì)象的ActiveConnection屬性訪問(wèn)隱含的Connection對(duì)象。例如:
For Each objError In rs.ActiveConnection.Errors
Response.Write objError.Name & "<BR>"
Next
在本章后面,將詳細(xì)討論Error集合。
4. Properties集合
為了避免混亂,Properties集合沒(méi)有在前面的對(duì)象模型圖上加以顯示。它與對(duì)象模型的關(guān)系顯示在圖8-5中:
圖8-5 Property與對(duì)象之間的關(guān)系
Properties集合存在的原因是因?yàn)锳DO是用來(lái)處理許多不同的數(shù)據(jù)存儲(chǔ),都有不同的特征。將屬性(Property)組成一個(gè)集合,可以使之能夠動(dòng)態(tài)地根據(jù)不同的數(shù)據(jù)提供者而隨時(shí)改變。例如,Jet的OLE DB提供者允許訪問(wèn)Jet特殊的安全屬性:
Set conDB = Server.CreateObject ("ADODB.Connection")
conDB.Open "DSN=Nwind"
conDB.Properties ("Jet OLEDB:Database Password") = "LetMeIn"
其他的提供者沒(méi)有這個(gè)屬性,因此把它加到Connection對(duì)象中作為一個(gè)靜態(tài)屬性是不明智的。ADO根據(jù)所使用的OLE DB提供者,會(huì)用提供者缺省值填充屬性集合。
雖然這里有關(guān)于Properties集合的使用說(shuō)明,但在本書中不準(zhǔn)備詳細(xì)敘述Properties集合。要獲得更多的關(guān)于該集合的介紹,請(qǐng)參閱《Professional ADO 2.5 Programming》或《ADO 2.5 Programming's Reference》,兩者都由Wrox出版。
8.2.7 ADO常數(shù)
當(dāng)使用ADO時(shí),會(huì)發(fā)現(xiàn)有許多預(yù)先定義的用于眾多選項(xiàng)的常數(shù),比如定義光標(biāo)類型和鎖類型的常數(shù)。使用像Visual Basic或Visual C 這樣的語(yǔ)言,一旦引用了ADO類型庫(kù),自然會(huì)用到這些常數(shù)。在ASP中情況不同,有兩種選擇。
引用常數(shù)的第一種方法是把它們包含進(jìn)ASP文件:
<!-- #INCLUDE FILE="adovbc.inc" -->
可以將包含文件拷入本地目錄,或者從安裝目錄引用它,其缺省路徑為C:\Program Files\Common Files\System\ado(以上文件包含用于VBScript的ADO常數(shù)——對(duì)于JScript,應(yīng)該使用adojavas.Inc)。使用這個(gè)方法的一點(diǎn)不足是會(huì)使ASP頁(yè)面變得過(guò)大,因?yàn)榘巳康某?shù),而其中許多是不需要使用的。
可以創(chuàng)建自己的只含有所需要的常數(shù)的包含文件,但越來(lái)越多使用ADO的功能時(shí),很可能會(huì)發(fā)現(xiàn)需要不斷地編輯、維護(hù)這個(gè)文件。
一個(gè)比較好的解決的方法是創(chuàng)建一個(gè)對(duì)類型庫(kù)的引用,這種方法不需要將常數(shù)包含進(jìn)ASP文件而直接可以引用常數(shù):
<!-- METADATA TYPE="typelib" FILE="C:\Program Files\
Common Files\System\ado\msado15.dll" -->
不要懷疑這個(gè)DLL的名字是msado15.dll,這是一個(gè)正確的名字,包含最新版本的ADO。
可以在需要的地方把這個(gè)METADATA語(yǔ)句包含進(jìn)每一個(gè)ASP文件,或者放入global.asa文件,這樣應(yīng)用程序中的每個(gè)Web頁(yè)面都可以引用這些常數(shù)。
8.3 連接到數(shù)據(jù)存儲(chǔ)
如果需要訪問(wèn)一個(gè)數(shù)據(jù)存儲(chǔ),應(yīng)該創(chuàng)建一個(gè)到數(shù)據(jù)存儲(chǔ)的連接。前面已經(jīng)提到過(guò):可以顯式地創(chuàng)建一個(gè)Connection對(duì)象,或者讓ADO隱含地創(chuàng)建一個(gè)連接。對(duì)于任何一種方式,都必須知道數(shù)據(jù)存儲(chǔ)的詳細(xì)內(nèi)容。
雖然用于連接的實(shí)際細(xì)節(jié)不盡相同,但對(duì)于所有類型的數(shù)據(jù)存儲(chǔ),其連接的實(shí)際方法是相同的。這并不令人驚奇,因?yàn)椴煌奶峁┱咝枰煌愋偷男畔�。在允許用戶訪問(wèn)數(shù)據(jù)存儲(chǔ)之前,一些提供者需要用戶的證書,而別的提供者卻接受默認(rèn)的安全證書。
連接到數(shù)據(jù)源有好幾種方法:
· 連接字符串。在字符串中放入連接的細(xì)節(jié),或在打開數(shù)據(jù)存儲(chǔ)時(shí),直接將連接細(xì)節(jié)加入到命令中。這種方法的優(yōu)點(diǎn)是連接細(xì)節(jié)將保留在ASP頁(yè)面中。不足之處,如果你有較多的頁(yè)面,在改變了連接細(xì)節(jié)時(shí),將陷于繁重的維護(hù)工作當(dāng)中。解決的方法是創(chuàng)建一個(gè)包含連接細(xì)節(jié)的字符串變量,并放進(jìn)一個(gè)ASP包含文件,這樣的話僅僅有一個(gè)連接字符串的實(shí)例,但能保持與其他的ASP頁(yè)面相符。另一個(gè)常用的技術(shù)就是將應(yīng)用程序中的連接字符串存儲(chǔ)到狀態(tài)變量中,這樣可以被應(yīng)用程序中的所有頁(yè)面使用。
· 數(shù)據(jù)鏈接文件。這是一個(gè)含有連接細(xì)節(jié)的文件(擴(kuò)展名為.udl)。優(yōu)點(diǎn)是對(duì)于任何數(shù)據(jù)的ASP頁(yè)面只需要一個(gè)數(shù)據(jù)鏈接文件。要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)鏈接文件,只需創(chuàng)建一個(gè)新的文本文件,并重新命名(要確保Windows資源管理器顯示文件擴(kuò)展名)。一旦重新命名了該文件,就可以打開它(雙擊)以顯示Data Link Properties對(duì)話框。
分享:凈化網(wǎng)絡(luò)環(huán)境 ASP程序?qū)崿F(xiàn)過(guò)濾臟話凈化網(wǎng)絡(luò)環(huán)境 ASP程序?qū)崿F(xiàn)過(guò)濾臟話 以下為引用的內(nèi)容: <!--#include file="../conn/dbconn1.asp"--> <!--#include
相關(guān)ASP教程:
- asp FSO 讀寫文件本文件實(shí)現(xiàn)代碼
- asp中isNull、isEmpty和空字符串的區(qū)別
- asp獲取用戶真實(shí)IP地址的方法
- asp連接sqlserver數(shù)據(jù)庫(kù)實(shí)現(xiàn)代碼
- asp中正則表達(dá)式過(guò)濾html代碼函數(shù)
- asp中g(shù)et post提交表單區(qū)別
- 網(wǎng)頁(yè)模板:ASP內(nèi)建對(duì)象Request
- xmlhttp的open方法使用詳解
- ASP的常用的自定義函數(shù)大全
- asp中用for循環(huán)的一個(gè)小技巧
- eWebEditor v3.8 列目錄
- ASP無(wú)組件分頁(yè)實(shí)現(xiàn)思路及代碼
ASP教程Rss訂閱編程教程搜索
ASP教程推薦
- 如何用ASP編寫網(wǎng)站統(tǒng)計(jì)系統(tǒng)
- 巧用SQL-DMO創(chuàng)建備份及校驗(yàn)的ASP應(yīng)用
- IIS服務(wù)器與web.config配置優(yōu)化指南
- 用ASP木馬實(shí)現(xiàn)FTP和解壓縮
- ASP實(shí)例代碼:長(zhǎng)文章分頁(yè)代碼設(shè)置方法
- ASP技巧:判斷遠(yuǎn)程圖片是否存在
- ASP實(shí)例教程:FileSystemObject對(duì)象
- ASP實(shí)例:即時(shí)顯示當(dāng)前頁(yè)面瀏覽人數(shù)
- 一個(gè)免費(fèi)的簡(jiǎn)單聊天室源代碼
- 淺析win2003編寫asp代碼需啟用父路徑
- 相關(guān)鏈接:
- 教程說(shuō)明:
ASP教程-ASP 3.0高級(jí)編程(三十七)
。