国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

ASP 3.0高級編程(108)

ASP 3.0高級編程(108)

更新時間:2022-05-10 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

5.2.5 引用對象類型庫
    在早先的ASP版本中,在腳本中使用對象或組件時,組件內(nèi)定義的公共常數(shù)(如果有的話)在ASP里將不再有效。這意味著我們需要自己聲明它們(或等價物)并指定相應(yīng)的值。
    例如,當(dāng)在早期版本的ASP中使用ActiveX數(shù)據(jù)庫對象(ADO)組件時(將在第8章進(jìn)行詳細(xì)的研究),不得不用記錄集的Open方法加入預(yù)定義常數(shù)聲明。例如:
    Const adOpenKeyset = &H0001
    Const adLockPessimistic = &H0003
    Const adCmdTable = &H0002
    …
    rs.Open “Contact”,”DSN=GlobalExampleData;UID=examples;Password=;”, _
            adOpenKeyset, adLockPessimistic, adCmdTable
    …
    另一種方法是使用#include指令在頁面插入一個名為adovbs.inc的文件。該文件由IIS/ASP提供,包含ADO所需的所有預(yù)定義常數(shù)。更新代碼時,必須確認(rèn)使用的是最新版本,并檢查它對于所有的頁面請求都可用。
    對于IIS 5.0,有一個更好的方法,通過在HTML注釋元素內(nèi)使用METADATA指令,可以給組件或?qū)ο蟮念愋蛶煸黾右茫↖IS 4.0不支持這一功能)。
    <!-- METADATA TYPE=”TypeLib”
                   FILE=”path_and_name_of_file”
                   UUID=”type_library_uuid”
                   VERSSION=”major_version_number.minor_version_number”
                   LCID=”locale_id”
    -->
    其中:
    · path_and_name_of_file是某一類型庫文件(.tlb)或ActiveX DLL的絕對物理路徑,必須提供這一參數(shù)或者是type_library_uuid參數(shù)。
· type_library_uuid是該類型庫的唯唯一標(biāo)識符,必須提供這一參數(shù)或者是path_and_name_of_file參數(shù)。
    · major_version_number.minor_version_number(可選)定義了所需組件的版本。如果沒有該版本則使用最近的版本。
    · locale_id(可選)是區(qū)域標(biāo)志符。如果在該區(qū)域沒有發(fā)現(xiàn)類型庫,計算機將使用缺省的(安裝時定義的)區(qū)域。
    因此,使用這一技術(shù),通過使用下面的代碼,能使內(nèi)置的ADO預(yù)定義常數(shù)在ASP頁面可用:
    <!-- METADATA TYPE=”TypeLib”
                FILE=”C:\Program Files\Common Files\System\ado\msado15.dll”
    -->
    文件名msado15.dll還可用于更高版本(2.50以后)的ADO組件。
    如果ASP不能裝載類型庫,就返回一個錯誤并停止該頁的執(zhí)行?赡艿腻e誤提示如表5-1所示:
表5-1  錯誤提示代碼及說明
錯 誤    說 明
ASP 0222    無效的類型庫說明
ASP 0223    未找到類型庫
ASP 0224    類型庫不能加載
ASP 0225    類型庫不能打包(即ASP不能從指定的類型庫中創(chuàng)建類型庫包裝對象)

5.2.6 在客戶端上創(chuàng)建對象實例
    在ASP中討論在服務(wù)器上實例化對象和組件的技術(shù)時,值得強調(diào)的是在瀏覽器中運行客戶端頁面而完成同樣工作的方式。如果你使用ASP創(chuàng)建包含客戶端腳本程序的頁面,或者使用<OBJECT>元素創(chuàng)建客戶端組件實例,將會發(fā)現(xiàn)這是非常有用的。在大多數(shù)情況下,腳本運行期對象可在客戶端上實例化和使用,效果與服務(wù)器上的ASP相同。
1.    VBScript CreateObject方法
在客戶端使用CreateObject時,在瀏覽器的環(huán)境內(nèi)創(chuàng)建組件或?qū)ο髮嵗,它們與瀏覽器運行在相同的內(nèi)存空間里(即進(jìn)程內(nèi)),除非實現(xiàn)的對象是帶有.exe擴展文件名的可執(zhí)行文件。
通常指定對象的ClassID,而不是使用ProgID字符串,這樣就不可能與其他安裝在客戶端的對象發(fā)生沖突。
<SCRIPT LANGUAGE=”VBScript”>
Dim objThis
Set objThis = CreateObject(“clsid:892D6DA7-E0F9-00105A42AF30”)

</SCRIPT>
當(dāng)然也可以使用ProgID,并且使用通用的對象或組件(特別是標(biāo)準(zhǔn)安裝提供的對象或組件),那么得到錯誤的組件的風(fēng)險是很小的:
<SCRIPT LANGUAGE=”VBScript”>
Dim objThis
Set objThis = CreateObject(“Scripting.Dictionary”)

</SCRIPT>
2.    Jscript ActiveXObject方法
為了在客戶端上實例化Jscript的對象和組件,必須使用ActiveXObject方法和new操作符:
<SCRIPT LANGUAGE=”JScript”>
    var objMyData = new ActiveXObject(‘clsid: 892D6DA7-E0F9-00105A42AF30’);
</SCRIPT>
或:
<SCRIPT LANGUAGE=”JScript”>
    var objMyData = new ActiveXObject(‘this.object’);
</SCRIPT>
3.    <OBJECT>元素技術(shù)
也可使用<OBJECT>元素創(chuàng)建客戶端對象或組件的實例。應(yīng)省略RUNAT屬性或者將其設(shè)定為“CLIENT”。然而,這個屬性在客戶端上是被忽略的,因此設(shè)置這個屬性的唯一目的就是,在ASP頁面使用<OBJECT>元素實例化服務(wù)器端的組件實例時防止混淆。
<OBJECT ID=”objThis” RUNAT=”CLIENT”
        CLASSID=”clsid: 892D6DA7-E0F9-00105A42AF30”
        CODEBASE=”http://yourserver.com/components/mycomponent.cab”>
    <PARAM NAME=”param1” VALUE=”value1”>
    <PARAM NAME=”param2” VALUE=”value2”>
</OBJECT>
注意,這里出現(xiàn)的CODEBASE屬性,表示允許下載并安裝來自URL的組件(如果該組件沒有安裝)。IE 3.0以上的版本有此功能。
對于使用<OBJECT>元素的方法、可使用的屬性、在客戶端使用的值,可查看網(wǎng)站http://msdn.Microsoft.com/workshop/author/dhtml/reference/objects/OBJECT.asp,或者Windows 2000 Platform SDK文檔中的<OBJECT> tags,或者看看《IE5 Dynamic HTML Programmer’ Reference》一書,ISBN 1-861001-74-6,Wrox出版社。

5.3 Scripting.Dictionary對象
    許多Microsoft的編程語言,如Visual Basic、VBScript和Jscript,都提供集合(collection)?梢园鸭舷胂鬄閿(shù)組,可以使用其中內(nèi)建的函數(shù)完成存儲和操縱數(shù)據(jù)等基本任務(wù)。無須擔(dān)心數(shù)據(jù)是在哪些行列,而是使用唯一的鍵進(jìn)行訪問。
    VBScript和Jscript都提供類似的對象,通稱Scripting.Dictionary對象或Dictionary對象。它類似于二維數(shù)組,把鍵和相關(guān)條目的數(shù)據(jù)存放在一起。然而真正的面向?qū)ο蟮姆椒ǎ粦?yīng)直接訪問數(shù)據(jù)條目,必須使用Dictionary對象支持的方法和屬性來實現(xiàn)。
    本章提供了一些示例頁面,允許試驗?zāi)_本運行期對象的方法和屬性。這些實例在下載的文件的文件的Chaper05子目錄里。

5.3.1 創(chuàng)建和使用Dictionary對象
    創(chuàng)建一個Dictionary對象的示例如下:
    ‘In VBScript:
    Dim objMyData
    Set objMyData = Server.CreateObject(“Scripting.Dictionary”)

    //In Jscript:
    var objMyData = Server.CreateObject(‘Scripting.Dictionary’);

    <!-- Server-Side with an OBJECT element -->
    <OBJECT RUNAT=”SERVER” SCOPE=”PAGE” ID=”objMyData”
            PROGID=”Scripting.Dictionary”>
    </OBJECT>
    Dictionary對象還可用于客戶端的IE中。
1.    Dictionary對象的成員概要
表5-2和表5-3列出了Dictionary對象的屬性和方法及相應(yīng)的說明。
當(dāng)增加一個鍵/條目對時,如果該鍵已存在;或者刪除一個鍵/條目對時,該關(guān)鍵字/條目對不存在,或改變已包含數(shù)據(jù)的Dictionary對象的CompareMode,都將產(chǎn)生錯誤。
表5-2  Dictionary對象的屬性和說明
屬 性    說 明
CompareMode    (僅用于VBScript)設(shè)定或返回鍵的字符串比較模式
Count    只讀。返回Dictionary里的鍵/條目對的數(shù)量
Item(key)    設(shè)定或返回指定的鍵的條目值
Key(key)    設(shè)定鍵值
表5-3  Dictionary對象的方法和說明
方 法    說 明
Add(key,item)    增加鍵/條目對到Dictionary
Exists(key)    如果指定的鍵存在,返回True,否則返回False
Items()    返回一個包含Dictionary對象中所有條目的數(shù)組
Keys()    返回一個包含Dictionary對象中所有鍵的數(shù)組
Remove(key)    刪除一個指定的鍵/條目對
RemoveAll()    刪除全部鍵/條目對
2.    對Dictionary中增加和刪除條目
一旦得到一個新的(空的)Dictionary,可以對其添加條目,從中獲取條目以及刪除條目:
‘ In VBScript:
objMyData.Add “MyKey”, “MyItem”            ‘Add Value MyItem with key MyKey
objMyData.Add “YourKey”, ”YourItem”        ‘Add value YourItem with key YourKey
blnIsThere = objMyData.Exists(“MyKey”)        ‘Returns True because the item exists
strItem = objMyData.Item(“YourKey”)            ‘Retrieve value of YourKey
strItem = objMyData.Remove(“MyKey”)        ‘Retrieve and remove YourKey
objMyData.RemoveAll                        ‘Remove all the items
在JScript中,等價的代碼為:
// In JScript;
objMyData.Add (‘MyKey’, ‘MyItem’);            //Add Value MyItem with key MyKey
objMyData.Add (‘YourKey’, ‘YourItem’);        //Add value YourItem with key YourKey
var blnIsThere = objMyData.Exists(‘MyKey’);    //Returns True because the item exists
var strItem = objMyData.Item(‘YourKey’);        //Retrieve value of YourKey
var strItem = objMyData.Remove(‘MyKey’);    //Retrieve and remove YourKey
objMyData.RemoveAll();                    //Remove all the items
3.    修改鍵或條目的值
可以通過修改鍵的值,或通過修改與特定的鍵關(guān)聯(lián)的條目的數(shù)據(jù),來改變存儲在Dictionary內(nèi)的數(shù)據(jù)。下面的代碼改變鍵為MyKey的條目中的數(shù)據(jù)。
ObjMyData.Item(“MyKey”) = “NewValue”        ‘ In VBScript
ObjMyData.Item(‘MyKey’) = ‘NewValue’;        // In JScript
如果指定的鍵在Dictionary未找到,將在Dictionary中創(chuàng)建一個以MyKey為鍵,以New Value為其條目值的新的鍵/條目對。有意思的是,如果使用一個不存在的鍵來檢索條目,不僅得到一個空的字符串(這是可以想到的),而且還在Dictionary里添加一個新的鍵/條目對,鍵即是指定的鍵,但條目的數(shù)據(jù)為空。
可以使用Key屬性僅改變鍵的值而不改變與之對應(yīng)的條目的數(shù)據(jù)。將一個已存在的鍵MyKey改變?yōu)镸yNewKey,可以用:
objMyData.Key(“MyKey”) = “MyNewValue”        ‘ In VBScript
objMyData.Item(‘MyKey’) = ‘MyNewValue’;        // In JScript
如果指定的鍵未找到,則產(chǎn)生運行期錯誤。
4.    設(shè)置比較模式
Dictionary的CompareMode屬性僅適用于VBScript,不能在JScript中使用。當(dāng)比較字符串鍵時,允許指定比較的方式。兩個允許的值為BinaryCompare(0)和TextCompare(1)。BinaryCompare(0)為二進(jìn)制數(shù)對照(即區(qū)分大小寫);TextCompare(1)為文本對照(即不區(qū)分大小寫)。
5.    遍歷Dictionary
研究Dictionary時,有兩個方法和一個屬性需要特別注意,它們允許我們遍歷存儲在Dictionary里的所有鍵/條目對。Items方法用一個一維數(shù)組的形式返回Dictionary里所有的條目數(shù)據(jù),而keys方法用一個一維數(shù)組返回所有已存在的鍵值。可以使用Count屬性得到鍵或條目的數(shù)量。
例如,可以使用下列代碼得到名稱為objMyData的Dictionary中所有的鍵和條目值。注意,雖然Count屬性保存了在Dictionary里的鍵/條目數(shù)量,但VBScript和JScript的數(shù)組總是從下標(biāo)0開始的。因此,數(shù)組下標(biāo)應(yīng)從0到Count-1。
‘In VBScript:
arrKeys = objMyData.Keys                    ‘Get all the keys into an array
arrItems = objMyData.Items                    ‘Get all the items into an array

For intLoop = 0 To objMyData.Count –1        ‘Iterate through the array
    StrThisKey = arrKeys(intLoop)            ‘This is the key value
    StrThisItem = arrItems(intLoop)            ‘This is the item (data) value
Next

// In JScript
// Get VB-style arrays using the Keys() and Items() methods
var arrKeys = new VBArray(objMyData.Keys()).toArray();
var arrItems = new VBArray(objMyData.Items()).toArray();

for (intLoop = 0; intLoop < objMyData.Count; intLoop++) {
    // Iterate through the arrays
    strThisKey = arrKeys[intLoop];            // This is the key value
    strThisItem = arrItems[intLoop];            // This is the item (data) value
}
在VBScript里也可以使用For Each … Next語句完成同樣的功能:
‘ Iterate the dictionary as a collection in VBScript
For Each objItem in arrItems
    Response.Write objItem & “ = “ & arrItems(objItem) & “<BR>”
Next

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        亚洲综合成人在线| 精品一区二区三区免费观看| 欧美日韩久久久久久| 久久色视频免费观看| 亚洲第一福利一区| youjizz久久| 26uuu色噜噜精品一区| 亚洲资源在线观看| 亚洲男人电影天堂| 国产福利一区二区三区| 久久久www成人免费无遮挡大片| 亚洲综合成人网| 欧美日韩精品一区二区三区| 亚洲国产日产av| 亚洲精品一区二区三区99| 麻豆久久久久久久| 久久天天做天天爱综合色| 国产不卡免费视频| 亚洲天堂精品在线观看| 91成人国产精品| 蓝色福利精品导航| 亚洲免费av高清| 91精品国产综合久久福利| 亚洲精品你懂的| 欧美午夜精品理论片a级按摩| 亚洲成人777| 国产三级三级三级精品8ⅰ区| 成人国产精品免费| 蜜臀91精品一区二区三区| 中文字幕 久热精品 视频在线| 欧美在线观看视频在线| 国产成人午夜99999| 天堂久久一区二区三区| 一区二区三区免费观看| 中文字幕精品一区| 久久久av毛片精品| 国产在线播精品第三| 婷婷夜色潮精品综合在线| 亚洲日穴在线视频| 国产欧美日本一区二区三区| 国产精品热久久久久夜色精品三区| 欧美经典一区二区三区| 亚洲一区二区三区四区不卡| 91亚洲国产成人精品一区二三| 日韩制服丝袜av| 久久成人久久鬼色| 国产乱码精品一区二区三区av| 蓝色福利精品导航| 成人av手机在线观看| 欧美专区日韩专区| 欧美男女性生活在线直播观看| 99久久99久久综合| 成人精品视频.| 国产酒店精品激情| 丰满亚洲少妇av| 欧美主播一区二区三区美女| 在线观看亚洲一区| 精品少妇一区二区三区免费观看| 精品久久久网站| 洋洋成人永久网站入口| 韩国欧美国产1区| 一本大道久久a久久综合| 337p亚洲精品色噜噜狠狠| 久久久久亚洲综合| 日韩在线a电影| 91丨九色丨蝌蚪丨老版| 欧美成人一区二区| 天天影视色香欲综合网老头| 成人小视频在线| 欧美精品一区男女天堂| 亚洲国产欧美在线人成| 欧美在线视频你懂得| 国产人久久人人人人爽| 激情久久五月天| 日韩美一区二区三区| 亚洲第一激情av| 4hu四虎永久在线影院成人| 亚洲一区中文在线| 欧美日韩免费不卡视频一区二区三区| 国产精品乱码久久久久久| 国产激情视频一区二区三区欧美| 5858s免费视频成人| 精品日韩在线一区| 奇米综合一区二区三区精品视频| 在线一区二区三区做爰视频网站| 亚洲欧美成人一区二区三区| 91麻豆.com| 日本视频一区二区| 久久综合av免费| 97se亚洲国产综合自在线| 亚洲午夜羞羞片| 日韩视频永久免费| 91在线观看一区二区| 国产麻豆成人精品| av亚洲精华国产精华| 色婷婷久久久亚洲一区二区三区| 久久66热偷产精品| 欧美主播一区二区三区美女| 日韩精品1区2区3区| 国产午夜三级一区二区三| 91在线观看成人| 久久福利视频一区二区| 欧美国产成人精品| 欧美精品 国产精品| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 91久久国产最好的精华液| 亚洲黄色在线视频| 久久精品免费在线观看| 欧美视频日韩视频在线观看| 国产一区欧美一区| 午夜一区二区三区在线观看| 国产精品麻豆视频| 精品国产露脸精彩对白| 日韩欧美资源站| 日韩视频在线观看一区二区| 欧美人伦禁忌dvd放荡欲情| 在线观看三级视频欧美| 日本精品一区二区三区高清| 91在线丨porny丨国产| 色综合久久久久| 欧美日韩亚州综合| 欧美变态tickling挠脚心| 精品少妇一区二区三区在线播放| 精品久久久久av影院| 国产精品系列在线| 亚洲麻豆国产自偷在线| 亚洲一区精品在线| 免费成人美女在线观看| 国产在线精品一区二区夜色| 国产一区二区三区观看| 91视频.com| 欧美一区中文字幕| 欧美高清在线精品一区| 亚洲一级二级三级| 国产精品18久久久久久久久 | 日本视频中文字幕一区二区三区| 秋霞电影网一区二区| 福利电影一区二区| 欧美一区三区二区| 99re视频精品| 精品国产91洋老外米糕| 五月综合激情婷婷六月色窝| 国产精品18久久久久久久久| 欧美在线不卡一区| 中文字幕一区在线观看视频| 久久国产婷婷国产香蕉| 在线中文字幕一区| 亚洲精选视频在线| 91久久精品网| 成人免费在线视频| 国产98色在线|日韩| 久久老女人爱爱| 大尺度一区二区| 久久久午夜电影| 国内成人精品2018免费看| 日韩欧美国产麻豆| 麻豆精品蜜桃视频网站| 欧美电影一区二区三区| 视频在线观看91| 日韩亚洲欧美高清| 韩国成人在线视频| 久久九九99视频| 不卡一卡二卡三乱码免费网站| 中文字幕免费在线观看视频一区| 成人福利视频在线| 亚洲mv在线观看| 欧美色爱综合网| 久久99蜜桃精品| 国产精品麻豆视频| 在线播放/欧美激情| 国产一区二区按摩在线观看| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 成人免费毛片app| 亚洲人成精品久久久久久 | 亚洲小说春色综合另类电影| 欧美电影一区二区三区| 国产乱码精品一区二区三区忘忧草| 久久香蕉国产线看观看99| 99久久伊人网影院| 图片区小说区区亚洲影院| 精品国产伦一区二区三区观看体验| 国产精品91一区二区| 偷拍一区二区三区四区| 欧美激情在线一区二区三区| 91美女片黄在线观看91美女| 久久成人免费日本黄色| 一区二区三区影院| 久久伊99综合婷婷久久伊| 欧美日韩一区不卡| 欧美在线视频不卡| 欧美丝袜自拍制服另类| av资源站一区| 91丨porny丨在线| 日本大香伊一区二区三区| 成人高清免费观看| 国产精品一区免费在线观看| 国产在线麻豆精品观看| 黄色精品一二区| 国产精品综合二区| 99视频超级精品|