ASP 3.0高級編程(三十七)_ASP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:asp.net利用RAR實現文件壓縮解壓縮
      如果服務器上安裝了RAR程序,那么asp.net可以調用RAR實現文件壓縮與解壓縮。 不過要注意的是,由于Web程序不能直接調用客戶端的程序(除非用ActiveX,ActiveX幾乎被廢棄),所以如果要想實現

      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對話框。

      分享:凈化網絡環境 ASP程序實現過濾臟話
      凈化網絡環境 ASP程序實現過濾臟話 以下為引用的內容: <!--#include file="../conn/dbconn1.asp"--> <!--#include

      來源:模板無憂//所屬分類:ASP教程/更新時間:2008-08-22
      相關ASP教程