在ASP中使用COM組件開發(fā)Web應(yīng)用程序
發(fā)表時間:2024-01-23 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]作者: 沈曉剛 如果你是一名Active Server Page (ASP) 開發(fā)者,相信你可能經(jīng)常使用COM對象來創(chuàng)建ASP頁面。甚至在你使用中都忽略了他就是COM對象。比如:ADO。只個調(diào)用率最高的組件已讓你的頁面擴(kuò)展了無限的功能。然而ASP本身是解釋型腳本,在功能上不足COM強(qiáng)大。作為擁...
作者: 沈曉剛
如果你是一名Active Server Page (ASP) 開發(fā)者,相信你可能經(jīng)常使用COM對象來創(chuàng)建ASP頁面。甚至在你使用中都忽略了他就是COM對象。比如:ADO。只個調(diào)用率最高的組件已讓你的頁面擴(kuò)展了無限的功能。然而ASP本身是解釋型腳本,在功能上不足COM強(qiáng)大。作為擁有快速開發(fā),易用性強(qiáng),支持COM的VB自然的作為了ASP中開發(fā)COM的首要工具。下面的示范和描述中,通過Visual Basic 語言在告訴大家如何寫COM及COM對象模型的使用,相信會讓你有所收獲。
屬性和方法之間有什么不同?
介紹一個屬性的要點(diǎn)?
什么是一個只讀屬性的含義?
什么是集合對象?
什么是集合對象中的標(biāo)準(zhǔn)屬性?
........
COM是一個面向?qū)ο蟮臉?biāo)準(zhǔn),在定義COM對象中只有方法和屬性。他們沒有其他的接口,方法能擁有參數(shù),屬性不能,屬性又擁有讀/寫兩種屬性,方法可以返回一個值。
屬性
屬性不接收任何參數(shù)并通常使用描述對象狀態(tài)或設(shè)置一個對象而被使用。所有屬性返回一個值,然而一些屬性是只讀,一些是讀/寫。在這里介紹一個用Visual Basic 語法的例子幫助解讀屬性:
例1
讀
value = object.property
寫
object.property = value
注意:這里并沒有熟悉的圓括號,只是像變量一樣的賦值。這里就是與方法(function/sub)不同之處。以上是用Visual Basic 語法設(shè)置一個屬性。
方法
方法能返回值或賦值,通常是被使用一個對象初始化事件,或一個函數(shù)過程的調(diào)用。方法能被賦值,但只有存在與參數(shù)列表,如果一個方法沒有參數(shù),那么語法如下:
例2
value = object.method()
注意在 例2中這個方法被設(shè)置空(),方法能有一個返回值必須有帶().以例所述,這個連接對象有一個執(zhí)行方法并返回一個Recordset對象。這里是例子:
例3
Set Rs = Conn.Execute ("select * from table")
方法不返回一個值,在參數(shù)中沒有().例如連接對象中的關(guān)閉方法。
例4
Conn.Close
重點(diǎn):
方法能獲取一個或多個參數(shù)或不獲取參數(shù)。然而,參數(shù)也同樣是可選的。參數(shù)一但存在,就必須全部賦值。如果有一個參數(shù)是可選,所有在該參數(shù)后的其他參數(shù)也同樣可選。例:打開數(shù)據(jù)庫連接的方法是一個關(guān)于可選參數(shù)方法的好的例子。這個打開方法有八個可選參數(shù)。第一,第二是建立數(shù)據(jù)庫和登錄信息。如例5
例5
Conn.Open "DSN","sa",""
顯示一個DSN的數(shù)據(jù)源,一個 sa 的登錄帳號和一個空的密碼;蚴悄隳苤狸P(guān)于例6中打開的方法:
例6
Conn.Open "driver=SQL Server;server=yourServerName;uid=someUID;" &_
"pwd=somePWD;database=someDatabase;"
注意在例6中我們只使用了一個參數(shù)和例5中我們使用的三個可選參數(shù)結(jié)果是一樣的。 可選參數(shù)是一個在被呼叫的方法中的參數(shù)允許為空或已被插入了默認(rèn)值。在例6中被使用的可選參數(shù)是默認(rèn)值,在例7中使用的可選參數(shù)是空。
例7
Conn.Open "DSN","sa","", , , ,
在例8中參數(shù)為空值的這幾個可選參數(shù)是不同與例5的。,
集合
集合對象可以存儲許多元素而且在創(chuàng)建以后也可以改變他們的數(shù)據(jù)。一個集合有Item方法,一個Count屬性和一個遍歷方法。一個集合的集合類型也同樣需要擁有創(chuàng)建對象的能力。換句話說。如果一個特別的對象需要在一個集合對象中創(chuàng)建一個對象群。如例,一個驅(qū)動器集合對象需要提供顯示驅(qū)動器在電腦中的詳細(xì)信息。
用Count屬性返回在這個集合中有多少對象。遍歷方法允許程序員在一個集合對象中從頭到尾地循環(huán)。例8中說明了遍歷方法:
例8
For Each Object in Collection
Next Object
注意在這個遍歷方法中沒有應(yīng)用如例中的語法。這是因為一個遍歷方法是特例在Visual Basic允許在開始使用并用For Next聲明。
默認(rèn)方法或?qū)傩?/p>
方法或?qū)傩允荂OM索引從0被獲取的默認(rèn)屬性。Visual Basic 允許程序員在不知道如何使用方法和屬性語法時自動呼叫默認(rèn)值。相關(guān)說明看例9。
例9
Set Object = Collection.Item(2)
這里是獲取在集合中獲取第二列并分配給Object對象。因為Item方法是一個默認(rèn)方法。你因此可以使用像例10中的Item方法。
例10
Set Object = Collection(2)
對象初試化
在ASP中創(chuàng)建一個對象實例。你可以使用一個像例11中的聲明
例11
Set Object = Server.CreateObject("SMUM.XCheck.1")
這里服務(wù)端的CreateObject方法中的參數(shù)是一個ProgId(Program ID).這個ProgId是一個唯一分配的COM對象.你必須知道這個COM對象的ProgId才能創(chuàng)建這個COM對象.
這里介紹另一種方法來創(chuàng)建COM對象.你能使用其他的COM對象來創(chuàng)建返回一個新的對象.這里介紹一個集合工作.你在一個集合方法返回一個COM對象所在集合對象中的索引號,另一個對象隨時會返回一個COM對象.在例12中你必須用類似set來聲明。
例12
Set Object = Collection.Item(2)
服務(wù)端是一個COM對象。例11和例16許多地方都很相似。他們是從一個COM對象中訪問另外一個COM對象。他們不同之處就在于一個是在服務(wù)端使用CreateObject的方法來創(chuàng)建一個服務(wù)端對象從而返回一個COM對象。另一個是用在一個集合內(nèi)通過Item方法返回一個COM對象。因此如果你需要在一個COM對象中創(chuàng)建另一個COM對象。服務(wù)端對象來自與哪?答案就如是先有雞還是先有蛋的問題他們是聲名一個ASP中的內(nèi)置COM對象。
內(nèi)置COM對象
在ASP環(huán)境中有六個內(nèi)置的COM對象。
Server
Request
Response
Application
Session
ObjectContext
關(guān)于ASP內(nèi)置對象在這里不多說。