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

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

ASP 3.0高級編程(3107)

ASP 3.0高級編程(3107)

更新時間:2022-05-10 文章作者:未知 信息來源:網絡 閱讀次數:

8.2.5 Stream對象
       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對話框。以前版本的ADO允許從Windows資源管理器的New菜單建立數據鏈接文件。我們將在本章稍后看到有關數據鏈接文件的內容。
       · ODBC數據源,或DSN。有點類似于數據鏈接文件,但只適用于ODBC數據源。它們集中起來用于ASP頁面,數據源必須是系統數據源。ODBC數據源從ODBC數據源管理器(ODBC Data Source Administrator)中創建,這個工具可在Administrative Tools文件夾中找到。
       這三種方式無論哪一種都可以使用,使用哪一種只是一種偏愛而已。直接的連接字符串可能速度快一些,因為提供所有的連接細節。數據鏈接文件需要從文件中讀出連接細節,ODBC數據源需要從注冊表中讀取連接細節。當然,速度的差異是很小的,每種方法各有優缺點。

8.3.1 連接字符串
       連接字符串依賴于提供者,因為每個數據提供者可能需要不同的細節。
       值得注意的重要一點是,ODBC的OLE DB提供者是缺省的,所以,如果不使用Provide=部分,系統將自動地使用ODBC。
       下面為不同的提供者列舉了連接字符串的例子,在本書的后面將會看到更多的例子。
1.  微軟Access
如果使用ODBC,而沒有DSN:
Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\wrox\database_name.mdb
對于本地的OLE DB提供者:
Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\wrox\database_name.mdb
上面的例子說明了Access數據庫存放于C:\wrox目錄下。雖然讀者可能會嘗試將數據庫作為Web文件存放于相同的目錄下,但不要這樣做,否則任何人都可以下載整個數據庫文件。將數據庫存放于Web目錄外永遠是明智的,沒有人可以從外面訪問該文件。
2.  微軟SQL Server
對于微軟SQL Server,使用針對ODBC的提供者:
Driver={SQL Server}; Server=server_name; Database=database_name; UID=user_name;
PWD=user_password
例如:
Driver={SQL Server}; Server=WATCHER; Database=pubs; UID=davids; PWD=whisky
對于本地OLE DB提供者,語法類似:
Provider=SQLOLEDB; Data Source=server_name; Initial Catalog=database_name;
User Id=user_name; Password=user_password
例如:
Provider=SQLOLEDB; Data Source=WATHCHER; Initial Catalog=pubs; User Id=davids;
Password=whisky
3.  微軟索引服務
索引服務只能通過本地的OLE DB提供者使用。其語法:
Provider=MSIDXS; Data Source=catalog_name
例如,使用Web目錄
Provider=MSIDXS; Data Source=Web
4.  ODBC驅動程序
在使用針對ODBC的OLE DB提供者的例子中,Driver顯得較為冗長。例如:
Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\wrox\database_name.mdb
當創建一個新數據源時,使用的驅動程序的準確名字應該是從驅動程序列表中得到的,如圖8-6所示:

圖8-6  驅動程序列表
5.  數據鏈接文件
以前版本的ADO允許在資源管理器中的目錄上右擊鼠標來創建一個數據鏈接文件。創建了新文件后,打開該文件從而得到Data Link Properties對話框。在寫本書的時候,微軟已經從鼠標右鍵菜單中刪除了該選項,因為他們覺得這會讓用戶感到混亂。但微軟聲稱會提供一個注冊表文件以便再次引入這項功能。
不要忘了,也可以簡單地通過創建一個空文本文件,并將其擴展名改為.udl來創建一個數據鏈接文件。
一旦有了物理上的數據鏈接文件,就可以通過鼠標雙擊或者右擊鼠標選擇Open打開文件。接下來,讀者會看到圖8-7所示的對話框:

圖8-7  Data Link Properties對話框
圖中的詳細內容因選擇的提供者的不同而不同。上面的例子顯示了SQL Server提供者,連接到一個稱為WATHER的SQL Server上,以davids的身份登錄(口令被屏蔽了),使用pubs數據庫。注意,如果選擇Allow saving password選擇,輸入的口令將會在UDL文件中以明文保存下來。
如果要改變提供者,可以選擇“Provider”(提供者)選項卡,如圖8-8所示:

圖8-8  改變提供者的選項卡
通過這個選擇,可以選出所需的提供者,然后按下Next按鈕填入適當的連接細節。
也可以在文本編輯器中編輯文件,如圖8-9所示:

圖8-9  改變提供者的選項卡
可以看到在UDL文件中確實存有一個連接字符串。
要使用數據鏈接文件,僅需要在打開連接時指定這個數據鏈接文件:
conPubs.Open "File Name=C:\wrox\pubs.udl"
6.  ODBC數據源
ODBC數據源(通常稱謂數據源名稱,即DSN)可以通過Administrative菜單的Data Source選項進行設置。在以前版本的Windows中把它作為控制面板中的一個小程序。為了在ASP頁面中訪問DSN,必須確定該DSN已經被設置為系統DSN。這只需在Data Source Administrator中選擇System DSN選項卡,然后選擇Add按鈕,如圖8-10所示:

圖8-10  選擇數據源的界面
然后,就可以選擇希望使用的ODBC驅動程序,并填入適當的ODBC參數。
一旦建立了DSN,可以使用連接字符串的“DSN=”屬性。例如:
conPubs.Open "DSN=pubs"

8.3.2 使用包含文件
       使用包含文件連接字符串的包含文件提供了一個中心區域來存儲許多ASP頁面需要的連接細節。要這樣做,僅僅需要創建一個新的ASP文件,不妨稱為Connection.asp,并在其中加入下面的代碼:
       <%
       strConn = "Provider=SQLOLEDB; Data Source=WATCHER; " & _
                     "Initial Catalog=pubs; User Id=davids; Password=whisky"
       %>
       在ASP頁面中,現在可以在該頁的頂端加入這一行:
       <!-- #INCLUDE FILE="Connection.asp" -->
       這樣不必再為每個ASP頁面都輸入連接細節,同時方便于更改整個站點都使用的連接。
       包含文件也是放置METADATA標簽的好地方。


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

本類教程下載

系統下載排行

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

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

        欧美日产国产精品| 精久久久久久久久久久| 久久99精品久久久久久动态图 | 国产精品99久久久久久久vr| 欧美精品一区二区三区在线播放| 精品亚洲成a人在线观看 | 精品久久人人做人人爽| 激情五月激情综合网| 国产欧美一二三区| 丁香五精品蜜臀久久久久99网站 | 亚洲成精国产精品女| 99re这里都是精品| 国产精品美女一区二区三区| 成人手机电影网| 欧美一区二区精品| 夜色激情一区二区| 成人深夜在线观看| 欧美一区二区在线视频| 亚洲精品老司机| 国产成人午夜精品5599| 色综合欧美在线视频区| 久久色在线观看| 麻豆国产一区二区| 91精品国产一区二区三区蜜臀| 日韩影院免费视频| 欧美大黄免费观看| 国产精品亚洲综合一区在线观看| 亚洲国产岛国毛片在线| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美伊人精品成人久久综合97| 亚洲精品亚洲人成人网| 7777精品伊人久久久大香线蕉超级流畅 | 狠狠狠色丁香婷婷综合久久五月| 精品久久国产老人久久综合| 狠狠v欧美v日韩v亚洲ⅴ| 久久久美女艺术照精彩视频福利播放| 懂色av噜噜一区二区三区av| 亚洲日本成人在线观看| 欧美日韩高清一区二区| 国内精品久久久久影院色| 国产精品色婷婷| 欧美二区三区91| 国产精品888| 亚洲国产精品尤物yw在线观看| 91精品国产日韩91久久久久久| 国产精品中文欧美| 亚洲一区在线免费观看| 精品国产一区二区精华 | 亚洲精品国产成人久久av盗摄| 欧美午夜精品免费| 国产河南妇女毛片精品久久久| 中文字幕一区二区三区色视频| 欧美日韩一区二区电影| 国产精品99久久久久久久vr| 亚洲成人一二三| 中文字幕电影一区| 欧美一区二区在线不卡| 99久久99久久久精品齐齐| 香蕉久久一区二区不卡无毒影院| 欧美日韩国产123区| 激情综合网av| 中文字幕亚洲在| 精品精品欲导航| 欧美日本免费一区二区三区| 不卡视频在线看| 成人免费毛片嘿嘿连载视频| 老司机精品视频导航| 五月激情综合婷婷| 亚洲精品高清视频在线观看| 久久久91精品国产一区二区精品 | 国产精品国产成人国产三级| 91丨九色porny丨蝌蚪| 国产资源在线一区| 美女高潮久久久| 天天综合网天天综合色 | 成人精品在线视频观看| 美女视频网站久久| 亚洲成精国产精品女| 亚洲男同1069视频| 亚洲欧美二区三区| 国产精品沙发午睡系列990531| 日韩精品一区二区三区swag| 日韩欧美综合一区| 欧美一区二区视频在线观看2020| 欧美三级电影一区| 在线观看av一区| 欧美性videosxxxxx| 色综合久久天天| 91丝袜美腿高跟国产极品老师 | 9i在线看片成人免费| 国产精品一区一区三区| 激情亚洲综合在线| 国产成人综合视频| 国产成人av福利| 成人免费观看男女羞羞视频| 国产成人8x视频一区二区| 成人午夜视频福利| 不卡的av网站| 欧美四级电影在线观看| 欧美私人免费视频| 欧美一级国产精品| 精品免费视频.| 久久精品一区二区三区不卡牛牛 | 激情文学综合丁香| 国产乱人伦精品一区二区在线观看| 韩国一区二区视频| 国产成人av福利| 欧日韩精品视频| 日韩一区二区在线看| 久久精品一区二区三区不卡| 成人免费小视频| 午夜精品久久一牛影视| 国产精品12区| 欧洲一区在线观看| 欧美videos中文字幕| 国产精品二三区| 日日夜夜精品免费视频| 成人夜色视频网站在线观看| 欧美羞羞免费网站| 久久午夜免费电影| 亚洲午夜av在线| 国产成人免费视频网站| 欧美午夜电影一区| 国产欧美综合在线| 日韩精品亚洲专区| 成人三级伦理片| 日韩欧美一二三四区| 国产精品电影院| 久久不见久久见免费视频1 | 美女视频黄 久久| 色哟哟精品一区| 国产午夜精品福利| 免费在线视频一区| 91麻豆福利精品推荐| 精品少妇一区二区| 香蕉av福利精品导航 | 国产欧美日韩三级| 人人狠狠综合久久亚洲| 91视频免费播放| 国产精品久久久久婷婷二区次| 日韩中文字幕1| 欧亚一区二区三区| 中文字幕一区二区不卡| 国产精品资源在线观看| 制服丝袜中文字幕亚洲| 亚洲精品国产一区二区三区四区在线| 国内成人精品2018免费看| 欧美日本一区二区三区四区| 亚洲图片激情小说| voyeur盗摄精品| 欧美激情在线一区二区| 精品午夜久久福利影院| 色诱亚洲精品久久久久久| 国产精品不卡视频| 粉嫩久久99精品久久久久久夜| 精品国产精品一区二区夜夜嗨| 日韩二区三区四区| 日韩一级二级三级| 青娱乐精品视频在线| 91麻豆精品国产自产在线观看一区 | 欧美亚洲动漫另类| 亚洲国产婷婷综合在线精品| 91网上在线视频| 亚洲曰韩产成在线| 在线观看国产91| 亚洲成av人**亚洲成av**| 欧美视频一二三区| 亚洲在线视频免费观看| 成人动漫视频在线| 国产农村妇女毛片精品久久麻豆| 亚洲五码中文字幕| 成人av在线电影| 国产精品久久久久一区二区三区 | 日韩美女视频在线| 久久国产视频网| 久久先锋影音av鲁色资源| 99视频精品免费视频| 亚洲精品综合在线| 91精品国产综合久久婷婷香蕉| 免费日韩伦理电影| 国产亚洲婷婷免费| 99国产欧美另类久久久精品| 亚洲一区二区三区自拍| 色天天综合色天天久久| 亚洲一区在线电影| 99re视频这里只有精品| 一区二区三区色| 国产日韩欧美高清| 91亚洲精品一区二区乱码| 亚洲国产精品久久艾草纯爱| 欧美日韩不卡一区二区| 国产校园另类小说区| 91精品国产一区二区| 91视频免费观看| 成人激情视频网站| 高清不卡一区二区在线| 欧美精品一区二| 欧美一区二区三区喷汁尤物| 欧美日韩午夜精品| 91福利在线播放|