|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。ApacheASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。概述
假如你用ASP做开辟,你大概已在你的ASP页面顶用过COM了.可是,在你本人开辟一个COM部件或浏览一本具体先容COM的书之前,你极可能并没有完整了解COM,因此不克不及充实使用它来创立你的ASP页面.同时,你也不克不及很好的了解那些随COM部件带来的利用文档.假如你晓得COM的尺度和限定,你就能够很快的学会开辟其他的COM部件.
在这个教程里,我们将学到COM是如何事情的,你还将学到精晓COM的常识.
本教程的读者
本教程将给那些已利用过VBscript言语的,出格是用过ADO可是不晓得那就是COM的人具体形貌COM模子.他将告知你:
1.属性和办法的区分
2.属性必要参数吗
3.只读属性是甚么意义
4.甚么是汇合工具
5.每一个汇合工具都有些甚么属性
6.不挪用办法怎样对汇合排序
7.在一个DLL中能够有几个COM部件.
基本常识
COM是一个工具接口的尺度.界说一个COM工具只必要界说办法和属性,没有其他的接口.从一个程序员的概念来看,属性和办法之间没有太年夜的区分.办法能够带参数,属性不克不及.属性能够读写,办法假如要前往值的话,是只读的.
只管从编程角度看,属性和办法没有太年夜的区分,可是部件开辟者用他们完成分歧的功效.属性一般代表一个工具的形态,可是挪用办法能够完成任何想完成的义务,不论他包括工具的形态与否.
属性
属性不必要参数,用来形貌或设置工具的形态.一切的属性前往一个值,有些属性是只读的,有些是可读可写的.上面是VBscript中读取属性的表达式例:
例1:
value=object.property
注重这里没有效括号.例二是设置属性例:
例2:
object.property=value
办法
办法能够带参数,能够前往值.一般用来初始化一个工具的事务.当给办法传送参数时,办法能够用来设置值.假如办法只前往值,不设置值的话,表达式以下:
例3:
value=object.method()
注重例3顶用了括号.挪用办法来前往值时必需用括号.比方,工具Connection有一个Execute办法前往一个Recordset工具.例:
例4:
SetRS=Conn.Execute("SELECT*FROMTABLE")
不必前往值,不必参数的办法,如Connection工具的Close办法:
例5:
Conn.Close
参数
办法能够带一个或多个参数,或一个也不要.可是,参数并非必须的.一旦一个参数是可选的,厥后的参数都是可选的.比方,参数一和参数二是必须的,参数三是可选的,则参数四一定是可选的.一个很好的例子是Connection工具的Open办法.他有八个可选的参数.前三个用来传送数据库和等录的信息.你能够像例6那样挪用Open办法:
例6:
Conn.Open"DSN","sa",""
为了供应DSN名,用户名,口令为空,你也能够想例7那样挪用:
例7:
Conn.Open"driver=SQLServer;server=yourServerName;uid=someUID;"&_
"pwd=somePWD;database=someDatabase;"
注重在例6中我们用了三个参数,在例7中只用了一个,了局是一样的.
挪用办法时,以逗号分开,让可选的参数空着,将给该参数传送空值,
在例6中,可选参数用缺省值,在例八顶用空值.
例8:
Conn.Open"DSN","sa","",,,,
汇合
汇合是自己包括了很多工具的工具集,一切的汇合都包括一些预界说的办法和属性.一个汇合有一个Item办法,一个Count属性,一个_NewEnum办法.汇合有创建范例与他不异的工具的才能.换句话说,假如一个工具能够被包括进一个汇合中,那末,哎,这句话好难,我不翻了,给出原文吧.(Inotherwords,ifaparticularobjectcanbegroupinasetthenthatobjectwillhaveacollectionobjectthatcancreateaninstanceofanobjectwithintheset.Forinstance,aDrivescollectionobjectwillcontainasetofdrivesthatmightrepresentallthedrivesonaparticularcomputer).
Count属性前往一个代表汇合中元素个数的长整型值.给Item办法传送一个长整数(固然应在1和Count之间),就前往汇合中这个索引所指向的工具.就像数组那样.(原文此处凌乱,稍做调剂)
例9(1):
SetObject=Collection.Item(2)
由于Item是缺省办法,以是你也能够以下挪用:
例9(2):
SetObject=Collection(2)
_NewEnum办法能够重复挪用,
例9:
ForEachObjectinCollection
NextObject
(以下不译)
Noticethatthe_NewEnummethodisnotreferencedwithinthesyntaxofthe
statementinexample6.Thisisbecausethe_NewEnummethodhasaspecial
indexthatVisualBasicrecognizesasbeingusedfortheForNextstatement.Asa
littlebackground,allmethodsandpropertiesinaCOMobjectareindexedand
certainindexesareusedforparticulartasks.Forexamplethezeroindexisused
forthedefaultmethodorproperty.
TheDefaultMethodorProperty
ThemethodorpropertythathastheCOMindexofzeroiscalledthedefault
property.VisualBasicallowstheprogrammertonotusetheregular
method/propertysyntaxwhencallingthedefaultvalue,youcanleavethe
syntacticalcalltothemethod/propertyoffalltogether.Forexample,thedefault
methodinallcollectionsistheItemmethod.IfyouwheregoingtocalltheItem
method,youcoulddoitlikeitinexample9.
为了在ASP中创建一个COM工具,你能够:
例11:
SetObjectServer.CreateObject("SMUM.XCheck.1")
给Server的CreateObject办法只传送了一个参数,就是一个ID值,这是一个由COM部件供应者给出的,独一地标识一个COM工具的标记.为了创立一个COM工具的实例,你必需晓得该工具的ID值.
有别的一种办法能够取得一个工具的实例,你能够用一个已存在的工具实例来创立一个新的工具实例,现实上利用汇合时就是如许事情的,你挪用Item办法,前往了一个工具实例.
例12:
SetObject=Collection.Item(2)
例11和例12有一点是一样的,那就是都是从其余工具创立工具,区分是,CreateObject能够创立任何范例的工具,而Item只能前往汇合中的工具.就像先有鸡,仍是先有蛋的成绩一样,你大概要问,Server工具又是怎样来的呢?现实上,这是内置工具.他存在于ASP傍边.
内置工具
ASP中有六个内置工具,他们是:
Server
Request
Response
ObjectContext
Application
Session
这些工具与其他工具独一分歧的是,不必要创立实例.他们与其他工具体现得一样,有本人的办法和属性.由于他们是内置的,以是你不需晓得他们的ID,现实上,你基本不需挪用CreateObject往创立他们.
工具ID
假如你创立工具的次要办法就是挪用CreateObject的话,晓得工具的ID就十分主要了COM部件供应者在他们的文档里回供应工具的ID的.
(以下不译)
TheDocumentation
Nowthatwehaveestablishedtheunderstandingbetweenmethodsandproperties
alongwiththeirdifferentattributes,weneedtounderstandhowthedocumentation
fortheobjectsrepresentstheseattributes.Forexamples,wearegoingtolookat
15Secondscomponentsection,whichisinthesameformatastheIIS4.0
componentdocumentation.
ReadandWriteProperties
Agoodexampleofaread/writepropertyisthatofthePhoneTranslatepropertyof
theXCheckobject,shownhereinexample11:
Example13
object.PhoneTranslate[=value]
Noticethevaluesyntax,thisistheindicationofapropertythatcanbewrittento.
Thebracketsdenotethatthepropertyisoptional,inotherwordsyoudonotneed
tosetthepropertytousetheobject.Clickheretoviewthefulldocumentation.
ReadOnlyProperties
AgoodexampleofareadonlypropertyistheExpirespropertyoftheASPMail
object.
Example14
object.Expires
Noticethatunlikeexample11thereisnotanequalsymbol,indicatingthisisread
only.Clickheretoviewthefulldocumentation.
OptionalMethodArguments
AgoodexampleoftheoptionalargumentsistheSendXmethodoftheOCXMail
object.Thedocumentationsyntaxcanbeseenhereinexample12:
Example12
object.SendX(mailserver[,fromName[,fromAddress[,priority[,
returnReceipt[,toAddressList[,ccAddressList[,bccAddressList[,
attach[,messageSubject[,messageText]]]]]]]]]])
Noticethattheonlyrequiredargumentisthemailserverargument.Alltherest,
notedbythebracketsareoptional.Clickheretoviewthefulldocumentation.
Summary
WithafundamentalunderstandingofCOManditsabilities,coupledwithgood
documentationyoucanexpandtheflexibilityofyourActiveServerpage
programming.TaketheinformationthatyoualreadyknowaboutprogrammingIIS
objects,likeSessionobjectsandADO,andexpandonthatbyaddingmore
COMobjectstoyourrepertoire.ThirdpartyCOMobjectwillallowyouto
expandyourActiveserverapplicationsandaccomplishtasksrapidlybyleveraging
thecomponentobjectmodel.
减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。 |
|