ASP 3.0高级编程(三十七)_ASP教程
教程Tag:暂无Tag,欢迎添加,赚取U币!
缂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂傚洤顦甸弻銊モ攽閸℃瑥鈷堥梺鎼炲€曢ˇ鎵崲濞戞﹩鍟呮い鏃囧吹閸戝綊姊洪崫鍕櫤缂佽鐗撳璇测槈濮橆偅鍕冮梺缁樺姦閸撴稑鈻撻妶澶嬧拺闁告稑锕ラ埛鎺楁煛娴e憡鎲告俊鍙夊姍楠炴ḿ鈧稒锚椤庢捇姊洪崷顓犲笡閻㈩垰锕ョ粩鐔煎即閵忊檧鎷绘繛杈剧导鐠€锕傚绩閺夋5鐟扳堪鎼粹€斥拫濡炪們鍨洪〃濠呯熅闂佺粯绋撻¨鈧琒闂傚倸鍊搁崐鎼佸磹閹间礁纾圭€瑰嫭鍣磋ぐ鎺戠倞鐟滃繘寮抽敃鍌涚厽闁靛繆鎳氶崷顓犵幓婵°倕鎳忛悡娆撴煙濞堝灝鏋涙い锝呫偢閺屾稓鈧絽澧庣弧鈧梺鍝勬湰濞叉ê顕ラ崟顖氶唶婵犻潧妫楅ˉ娆愮節閻㈤潧浠﹂柛銊﹀劶瑜版粓姊虹悰鈥充壕婵炲濮撮鍡涘磹閻㈠憡鐓ユ繝闈涙閺嗘瑥鈹戦敍鍕幋闁哄本绋撻埀顒婄秵閸嬪懎鐣峰畝鈧埀顒冾潐濞叉ḿ鏁敓鐘茬畺婵炲棙鎸搁拑鐔兼煏婢跺牆鍔滈柡鍡╀邯濮婂宕掑▎鎴М闂佸湱鈷堥崑鍕弲闂侀潧艌閺呮稓澹曟繝姘厽闁归偊鍠栭崝瀣煕婵犲倻浠涢柕鍥у楠炴帡宕卞鎯ь棜闂傚倷绀侀悿鍥綖婢舵劕鍨傞柛褎顨呯粻鏍ㄧ箾閸℃ɑ灏柣顓燁殔椤潡鎳滈惉顏呭灴閺佸秵绗熼埀顒€顫忕紒妯诲閻熸瑥瀚禒鈺呮⒑閸涘﹥鐓ラ梺甯到閻i攱瀵奸弶鎴濆敤閻熸粍绮撳畷鐢稿即閻愨晜鏂€闂佺粯锚绾绢參銆傞弻銉︾厸闁告侗鍠楅崐鎰版煛鐏炶濮傞柟顔哄€濆畷鎺戔槈濮楀棔绱�濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌熼梻瀵割槮缁炬儳顭烽弻锝夊箛椤掍焦鍎撻梺鎼炲妼閸婂潡骞冪憴鍕闁瑰嘲鐭堥崝鍛攽閻愭彃鎮戦柣妤冨█楠炲啫鐣¢幍铏€婚棅顐㈡处閹尖晜瀵奸埀顒勬⒒娴h櫣甯涚紒璇插€块幃銉︾附缁嬭儻鎽曞┑鐐村灟閸ㄥ綊鎮炲ú顏呯厱闁规澘鍚€缁ㄥ瓨淇婇幓鎺斿ⅵ婵﹨娅g槐鎺懳熺拠鏌ョ€洪梻浣瑰濞插繘宕归挊澶樺殨濠电姵鑹鹃悘鎶芥煙妫颁胶顦﹂柟顔藉灴閺岀喖鎳栭埡鍕婂鏌嶈閸撴瑧澹曢銏╂晩闁硅揪闄勯埛鎺懨归敐鍥ㄥ殌闁崇粯娲熼弻锟犲焵椤掍焦缍囬柍鍝勫€瑰▓浼存⒑鐠恒劌鏋斿┑顔芥尦閹锋垿鎮㈤崗鑲╁帾婵犵數鍋熼崑鎾斥枍閸℃稒鐓曢悗锝庝簼椤ャ垽鏌$仦鍓с€掑ù鐙呯畵瀹曟粏顦俊鎻掔墕椤啴濡堕崨瀵稿椽闂佺懓鍤栭幏锟� 缂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闁靛棙甯掗~婵嬫晲閸涱剙顥氶梻浣藉Г钃辩紒璇茬墕椤繐煤椤忓秵鏅㈤梺閫炲苯澧扮紒顔芥⒒閳ь剟娼ч幗婊堟偝缂佹ü绻嗛柕鍫濇噺閸f椽鏌i幘瀵告噰婵﹥妞介、姗€濡歌閺嗙姵绻濋埛鈧崶鈺冩毇闂佸搫琚崐婵嗩嚕閸洖绠伴幖绮光偓鍙夋▕闂傚倷绀侀幖顐﹀嫉椤掑嫭鍎庢い鏍ㄧ◥缁诲棝鏌i幋鐘垫憘闁轰礁锕弻锝夊箻閸愯尙妲板┑鐐跺瀹曠數妲愰幘璇茬<婵炲棙甯╅崬褰掓⒑缁嬫鍎愰柟鍛婃倐閳ワ箓宕稿Δ浣告疂闂傚倸鐗婄粙鎴︼綖瀹ュ鈷戠紓浣股戠亸顓㈡煕閻斿憡灏︾€殿喖顭峰鎾偄妞嬪海鐛梻浣稿閸嬪懐鎹㈤崒鐐┾偓鏍ㄥ緞閹邦厸鎷虹紓鍌欑劍宀h法绮婚妷銉冪懓饪版惔婵嬪仐閻庢鍠栭…鐑藉极閹版澘宸濇い蹇撴噺閺夋悂姊绘担鍛婅础闁稿鎸稿玻鍨枎閹垮啯鏅滈梺璺ㄥ櫐閹凤拷 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簻椤掋垺銇勯幇顏嗙煓闁哄被鍔戦幃銏ゅ传閸曟垯鍨婚惀顏堝箚瑜滈悡濂告煛鐏炲墽娲寸€殿喗鎸虫俊鎼佸Ψ瑜夐崑鎾活敆閸曨剛鍘遍梺闈涱檧缁茶姤淇婇悾宀€纾界€广儱鎳忛崰姗€鏌$仦鐣屝х€规洦鍋婂畷鐔碱敃閿濆棭鍟€濠碉紕鍋戦崐褏鈧潧鐭傚畷瑙勬綇閳哄倸搴婂┑鐘绘涧椤戝懘锝為崨瀛樼叆婵犻潧妫欓ˉ鐘绘煏閸℃ê濮嶆慨濠冩そ瀹曨偊宕熼鐐╂嫛闂備礁鎲¢幐楣冨窗鎼淬劍鍋╃€瑰嫭瀚堥弮鍫濈劦妞ゆ帒瀚ㄩ崑鎴澝归崗鍏肩稇闂佸崬娲弻锝夊棘閹稿孩鍎撳Δ鐘靛仦閸旀瑥顫忕紒妯诲閻熸瑥瀚禒鈺呮⒑缁嬪灝鐦ㄩ柛銊ㄦ硾閻e嘲鈹戦崱鈺佹倯婵犮垼娉涢鍛村礈椤撱垺鈷戠痪顓炴噺瑜把囨⒒閸曨偄顏柛鈺傜洴楠炴帡骞嬮鐘叉暩闂佽崵濮惧▍锝囦焊閵娾晛绀夐柣鏃傚帶閺嬩線鏌涢鐘插姕闁抽攱鍨块弻娑樷攽閸℃浼傚銈庡亾缁犳捇寮诲☉娆戠瘈闁告劦浜滈埅鍦偓鍏夊亾闁挎繂鐗嗛崝鐢电磼閻樺磭鈽夐柍钘夘槸铻f繝褏鍋撳▍濠囨煛鐏炶濮傜€殿噮鍣e畷鎺戔堪閸愵亶鍋у┑锛勫亼閸婃垿宕曢懠顒傜煓闁规崘鍩栭~鏇㈡煙閹规劦鍤欑痪鎯у悑缁绘盯宕卞Ο铏逛淮婵犵鈧尙鐭欐慨濠冩そ瀹曨偊濡烽妷銈囨崟婵$偑鍊ら崢楣冨礂濮椻偓閹即顢欑捄銊ф澑濠电偞鍨堕悷锕€鈻嶉姀銈嗏拺閻犳亽鍔屽▍鎰版煙閸戙倖瀚� 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亝鎹i柣顓炴閵嗘帒顫濋敐鍛婵°倗濮烽崑鐐烘偋閻樻眹鈧線寮撮姀鈩冩珖闂侀€炲苯澧撮柟顔兼健椤㈡岸鍩€椤掑嫬钃熼柨婵嗘啒閺冨牆鐒垫い鎺戝閸嬪鈹戦悩鍙夋悙闁活厽顨婇悡顐﹀炊閵娧€濮囬梺缁樻尰閻熝呮閹惧瓨濯撮梻鍫熺〒娴犲ジ姊洪崫鍕靛剱缂佸甯楃粚杈ㄧ節閸ャ劌鈧兘鏌熷▓鍨灓闁绘挻鎹囧娲传閸曨偒妲甸梺閫炲苯澧柛鎾村哺瀹曘儳鈧綆鍠栫粻鍦磼椤旂厧甯ㄩ柛瀣崌閹崇娀顢楁担瑙勵仯闂傚倸鍊搁崐椋庣矆娓氣偓楠炲鏁撻悩顔瑰亾閸愵喖骞㈡繛鍡楃箲閻庢娊鎮楅獮鍨姎婵炶绠戦悾鐑藉矗婢跺瞼顔曢梺鐟扮摠閻熴儵鎮橀埡鍌ゆ闁绘劦浜滈悘顏勄庨崶褝韬い銏$☉閳规垿骞囬渚囧敳闂傚倸鍊搁崐鎼佀囬婊呯煋闁圭虎鍠栭悡姗€鏌熸潏鎯х槣闁轰礁顑夐弻娑㈠焺閸愵亝鍣柦鍐憾濮婄粯鎷呴崨濠傛殘濠殿喖锕ょ紞濠囧Υ閸愨晝绡€闁搞儜鍕氶梻渚€鈧偛鑻晶顖炴煏閸パ冾伃妤犵偞甯¢獮瀣攽閸モ晙澹曞┑鐘垫暩閸嬫盯宕ョ€n喖绀夋繛鍡樻尭閽冪喖鏌i弮鍌楁嫛闁轰礁锕弻銈吤圭€n偅鐝旈梺缁樻尵閸犳牠骞冨Δ鍐╁枂闁告洦鍓涢ˇ銊モ攽閻愯泛鐨洪柛鐘崇墪椤曪絾绻濆顒€鑰垮┑掳鍊曢敃銈夊箖閹达附鈷戦柛娑橈梗缁堕亶鏌涢妸锕€鈻曠€规洏鍨介、妤呭礋椤戣姤瀚藉┑鐐舵彧缂嶁偓濠殿喓鍊楀☉鐢稿醇閺囩喓鍘遍梺鎸庣箓缁绘帡鎮鹃崹顐闁绘劘灏欑粻濠氭煛娴h宕岄柡浣规崌閺佹捇鏁撻敓锟�,闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧湱鈧懓瀚崳纾嬨亹閹烘垹鍊炲銈嗗笂缁€渚€宕滈鐑嗘富闁靛牆妫楁慨褏绱掗悩鍐茬仼缂侇喖鐗忛埀顒婄秵閸嬩焦绂嶅⿰鍫熺厵闁逛絻娅曞▍鍛存煟韫囧﹥娅囬柟顕呭枛椤粓鍩€椤掆偓椤繒绱掑Ο璇差€撶紓浣圭☉椤戝懎鈻撻鐐╂斀妞ゆ梹鏋婚崗顒傜磼閻樿櫕宕岄柡浣瑰姍閹瑩寮堕幋鐘电嵁闂佽鍑界紞鍡涘礈濞戙埄鏁婇柡鍥╁枔缁♀偓闂佹眹鍨藉ḿ褍鐡梻浣呵归鍛涘┑鍡欐殾闁汇垻枪閸楁娊鏌曡箛銉х?闁告ê宕—鍐Χ閸℃衼缂備焦褰冩晶鐣屽垝閸儱鐒垫い鎺戝€荤壕钘壝归敐鍡楃祷濞存粓绠栧娲川婵犲倸顫呴梺鍝勫€搁崐鍦矉瀹ュ應鍫柛顐ゅ枔閸樻悂姊虹粙鎸庢拱婵ǜ鍔嶇粋鎺楀閵堝棛鍘靛銈嗘濡嫰鎮橀敃鍌涚厪闁搞儜鍐句紓缂備胶濮甸惄顖氼嚕閹绢喗鍊烽悗鐢电《閸嬫捇宕滆绾捐棄霉閿濆牊顏犻悽顖涚洴閺岋綁鍩℃繝鍌滀桓闂佺粯渚楅崰姘跺焵椤掑﹦绉甸柛鐘愁殜瀹曟劙鎮滈懞銉у幐婵犮垼娉涢鍛存倶閳哄倻绠鹃柛顐g☉閳ь剚绻傞~蹇曠磼濡顎撻梺鍛婄洴濞佳呯礊婵犲洢鈧線寮介鐐茶€垮┑鐐村灦宀e潡顢欐径鎰拺闁硅偐鍋涢崝鈧柣蹇曞仜婢х晫绮欐笟鈧缁樻媴閸涘﹤鏆堢紓浣筋嚙閸婂鍩€椤掍胶娈伴柛銉戝啫娈ら梺鐟板悑閻n亪宕濆澶嬪亗婵炲棙鍔戞禍婊堟煛瀹擃喖瀚峰Λ鐐烘煟鎼淬垹鍤柛鐘愁殘缁顓兼径妯绘櫆闂佸壊鍋嗛崯鍧楀箯缂佹ḿ绠鹃弶鍫濆⒔閸掍即鏌熺拠褏绡€鐎规洦鍨堕幃娆撴倻濡厧骞楅梻浣虹帛濮婄懓岣垮▎鎾崇闁靛牆顦伴悡娆愵殽閻愯尙浠㈤柣蹇婃櫊閹藉爼鏁愰崨顐熷亾閹烘埈娼╅柣鎾虫捣娴犫晛鈹戦悙鑼闁告柨绉堕幑銏犫攽鐎n偄浠洪梻鍌氱墛閸掆偓闁挎繂娲ㄥΛ顖炴煛婢跺孩纭堕弫鍫ユ倵濞堝灝鏋熼柣鎿勭節閻涱噣寮介妸锕€顎撻梺闈╁瘜閸樼厧顕i幎鑺モ拻濞达綀娅g敮娑欑箾閸欏澧电€规洘鍔欏畷鐑筋敇濞戞ü澹曞┑顔结缚閸嬫挾鈧熬鎷�!
推荐:asp.net利用RAR实现文件压缩解压缩
如果服务器上安装了RAR程序,那么asp.net可以调用RAR实现文件压缩与解压缩。
不过要注意的是,由于Web程序不能直接调用客户端的程序(除非用ActiveX,ActiveX几乎被废弃),所以如果要想实现
Stream对象用于访问节点的内容,比如一个E-Mail消息,或一个Web页面。利用Stream对象可以访问文件或资源的真实内容。因此,结合Record和Recordset对象,不仅可以访问Web服务器上的文件或email消息,还可以访问相应的内容。这样,就可以创建一个只使用ADO去访问邮件系统的邮件客户。这也许不会有太多的优点,但意味着可不必了解邮件系统的API或对象模型,减少了学习上的弯路。
Stream的另一个用途是XML,可以访问一系列作为XML流的数据(结构化或半结构化)。
Stream对象用来处理二进制数据,所以,可以用来处理BLOB类型的数据,比如数据库中的图像或大文本数据。
同样,在本书第11、12章中你会看到更多的有关Stream对象的例子。
8.2.6 集合
ADO对象库中有一些集合,每个集合都有零个或更多个与其关联的对象的拷贝。可以使用相同的代码结构去遍历这些集合。
在VBScript中的语法是:
For Each object In Collection
' Do something with object
Next
例如,遍历一个Recordset对象的Fields集:
For Each objField In rs.Fields
Response.Write objField.Name & "<BR>"
Next
如果选择JScript,那么可以使用Enumerator对象:
for (objField = new Enumerator(rs.Fields);
!objField.atEnd(); objField.moveNext())
Response.Write (objField.item().Name '<BR>');
1. Fields集合
Fields集合拥有与记录集或记录关联的Field对象。对基于结构化数据的记录集,比如SQL数据,字段相应于数据中的列,并含有列的详细内容,比如名称、数据类型、长度等等。在以后几章看到大量的关于Fields集合的例子。
对于半结构化的数据,对象的属性相应于字段。在第12章会看到更多的相关的介绍。
2. Parameters集合
Parameters集合仅被Command对象使用,确定在存储命令中的参数。SQL数据库中的存储过程频繁地使用参数,并允许数据传入和传出预定义的SQL语句。如果拥有向ADO返回信息的参数,则会十分有用,因为这样从存储过程中返回的就不只是一个记录集。例如,考虑一个更新多个表然后返回一个记录集的复杂存储过程,可以用一个输出参数显示更新了多少条记录。
另一个使用参数的理由是性能问题,特别是在仅仅需要从存储过程返回单个值的时候。在这种情况下,没有创建记录集的必要,只需要保存一个值即可,因而不需要返回记录集,而返回输出参数的值是更为有效的方法。
在第9章会看到有关Parameter集合的详细介绍。
3. Error集合
Error集合包含因运行命令而引起的上一次ADO或OLE DB提供者错误的详细内容,只能被Connection对象访问。可能会觉得这是个限制,因为不必显式定义Connection对象,但可以通过Command、Recordset和Record对象的ActiveConnection属性访问隐含的Connection对象。例如:
For Each objError In rs.ActiveConnection.Errors
Response.Write objError.Name & "<BR>"
Next
在本章后面,将详细讨论Error集合。
4. Properties集合
为了避免混乱,Properties集合没有在前面的对象模型图上加以显示。它与对象模型的关系显示在图8-5中:
图8-5 Property与对象之间的关系
Properties集合存在的原因是因为ADO是用来处理许多不同的数据存储,都有不同的特征。将属性(Property)组成一个集合,可以使之能够动态地根据不同的数据提供者而随时改变。例如,Jet的OLE DB提供者允许访问Jet特殊的安全属性:
Set conDB = Server.CreateObject ("ADODB.Connection")
conDB.Open "DSN=Nwind"
conDB.Properties ("Jet OLEDB:Database Password") = "LetMeIn"
其他的提供者没有这个属性,因此把它加到Connection对象中作为一个静态属性是不明智的。ADO根据所使用的OLE DB提供者,会用提供者缺省值填充属性集合。
虽然这里有关于Properties集合的使用说明,但在本书中不准备详细叙述Properties集合。要获得更多的关于该集合的介绍,请参阅《Professional ADO 2.5 Programming》或《ADO 2.5 Programming's Reference》,两者都由Wrox出版。
8.2.7 ADO常数
当使用ADO时,会发现有许多预先定义的用于众多选项的常数,比如定义光标类型和锁类型的常数。使用像Visual Basic或Visual C 这样的语言,一旦引用了ADO类型库,自然会用到这些常数。在ASP中情况不同,有两种选择。
引用常数的第一种方法是把它们包含进ASP文件:
<!-- #INCLUDE FILE="adovbc.inc" -->
可以将包含文件拷入本地目录,或者从安装目录引用它,其缺省路径为C:\Program Files\Common Files\System\ado(以上文件包含用于VBScript的ADO常数——对于JScript,应该使用adojavas.Inc)。使用这个方法的一点不足是会使ASP页面变得过大,因为包含了全部的常数,而其中许多是不需要使用的。
可以创建自己的只含有所需要的常数的包含文件,但越来越多使用ADO的功能时,很可能会发现需要不断地编辑、维护这个文件。
一个比较好的解决的方法是创建一个对类型库的引用,这种方法不需要将常数包含进ASP文件而直接可以引用常数:
<!-- METADATA TYPE="typelib" FILE="C:\Program Files\
Common Files\System\ado\msado15.dll" -->
不要怀疑这个DLL的名字是msado15.dll,这是一个正确的名字,包含最新版本的ADO。
可以在需要的地方把这个METADATA语句包含进每一个ASP文件,或者放入global.asa文件,这样应用程序中的每个Web页面都可以引用这些常数。
8.3 连接到数据存储
如果需要访问一个数据存储,应该创建一个到数据存储的连接。前面已经提到过:可以显式地创建一个Connection对象,或者让ADO隐含地创建一个连接。对于任何一种方式,都必须知道数据存储的详细内容。
虽然用于连接的实际细节不尽相同,但对于所有类型的数据存储,其连接的实际方法是相同的。这并不令人惊奇,因为不同的提供者需要不同类型的信息。在允许用户访问数据存储之前,一些提供者需要用户的证书,而别的提供者却接受默认的安全证书。
连接到数据源有好几种方法:
· 连接字符串。在字符串中放入连接的细节,或在打开数据存储时,直接将连接细节加入到命令中。这种方法的优点是连接细节将保留在ASP页面中。不足之处,如果你有较多的页面,在改变了连接细节时,将陷于繁重的维护工作当中。解决的方法是创建一个包含连接细节的字符串变量,并放进一个ASP包含文件,这样的话仅仅有一个连接字符串的实例,但能保持与其他的ASP页面相符。另一个常用的技术就是将应用程序中的连接字符串存储到状态变量中,这样可以被应用程序中的所有页面使用。
· 数据链接文件。这是一个含有连接细节的文件(扩展名为.udl)。优点是对于任何数据的ASP页面只需要一个数据链接文件。要创建一个数据链接文件,只需创建一个新的文本文件,并重新命名(要确保Windows资源管理器显示文件扩展名)。一旦重新命名了该文件,就可以打开它(双击)以显示Data Link Properties对话框。
分享:净化网络环境 ASP程序实现过滤脏话
净化网络环境 ASP程序实现过滤脏话
以下为引用的内容:
<!--#include file="../conn/dbconn1.asp"-->
<!--#include
相关ASP教程:
- 相关链接:
- 教程说明:
ASP教程-ASP 3.0高级编程(三十七)
。