国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

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

2024-05-04 11:03:56
字體:
來源:轉載
供稿:網友

推薦:ASP進階:用ASP制作統計餅圖、柱狀圖等
我們工作中經常需要將數據轉化成柱狀圖,餅圖等,以方便直觀的分析數據, 這里給大家介紹一個ASP中制作餅圖、柱狀圖的組件:csDrawGraph,csdgt.zip,因為是組件,所以我們在使用之前需要用REGSV

第8章 ADO基礎
在本書前7章中,已經講述了ASP的有關內容,以及ASP如何為Web站點帶來動態的內容。已經見到其腳本程序允許自定義Web頁面,使我們能夠構建功能更為強大的ASP頁面。
現在,將研究ASP和數據的集成。雖然對用于網頁中的腳本數量并無任何限制,但如果沒有某種形式的數據,很快就會進入一個死胡同。數據構成了Web站點的實際內容,或者指出了如何設置Web站點,因此總的說來數據是非常重要的。如果圍繞數據存儲建立Web站點,改變Web站點時只需要改變相應的數據即可。
ActiveX數據對象(ADO)是允許用戶與數據存儲進行交互的組件。這意味著只要基于某些數據就可建立一個網頁,或一種完全交互的電子商務系統。不論哪種方式,都是ADO使我們能與數據進行通信。我們將討論從數據存儲獲取和傳送數據的主要內容,以及得到數據后的數據處理方法。
首先研究什么是ADO及其所包括的組件,然后討論如何訪問數據存儲。在下一章,將進一步學習ADO更先進的一些特性,如命令、存儲過程和優化應用程序的一些操作技巧。下一步研究Web服務器和瀏覽器之間的交互過程,以及數據處理過程。然后研究數據存取領域中極具潛力的XML。XML是什么?如何使用?因為XML代表著未來發展的一種趨勢,我們將介紹微軟關于通用數據存取的構想。在這個構想中,數據不只是從數據庫中獲得的。最后,看一下標準的微軟數據庫(如Access與SQL Server)以及在其中如何使用ADO。
本章從ADO開始,主要內容有:
· 研究ADO如何與數據進行交互。
· 了解ADO的組件。
· 如何與數據存儲連接和創建數據集。
· 如何處理和修改數據。
· 如何處理ADO錯誤。

8.1 ADO的定義
ADO是一個相當簡單的思想,一種讓你僅用一種方式去訪問數據的思想。ADO不算一個新思想,僅是采用現有的數據庫訪問技術,并將其融合而形成的一種適應現在和未來需要的新東西。適應未來的需求是一件十分重要的事。許多其他的技術,比如DAO和ODBC,在一些應用程序的開發過程中是可以接受的,然而隨著Internet的興起也出現了其自身的一些問題。
在許多情況下,傳統的數據存取方法看上去能解決一些關于兩層客戶/服務器系統的問題,但要求與數據之間要保持一種永久性的連接,并要提供強大的功能,比如快速響應的查詢、數據容易修改等。在Internet領域,現在必須考慮到Web無狀態性本質,和潛在的眾多可以訪問Web站點的用戶。要與數據建立永久的連接是不現實的,因此必須在設計應用程序時考慮這些因素。
那么,OLD DB和ADO確切地講到底是什么?讓我們與一些已有的數據存取技術做比較后再來回答這個問題。如果讀者曾經接觸過數據庫編程,或許比較熟悉ODBC和RDO。開放數據庫連接(ODBC)是允許訪問關系數據庫(比如Access和SQL Server)的應用程序編程接口(API)。正因為是一個API,許多程序員,特別是Visual Basic領域的程序員,發現它使用起來很復雜。遠程數據對象(RDO)是位于ODBC上層的ActiveX對象,可以提供ODBC的所有功能,并且使用起來比較簡單。
可以將OLE DB等同于ODBC,ADO等同于RDO。
OLE DB是應用程序與數據源交互的一種基本技術。
這相當復雜,確實也只有C和C 程序員能夠使用。正如ADO的名字所暗示的,它是易于訪問OLE DB功能的ActiveX對象。
你或許發現術語ActiveX與COM對象經常混用。對于ASP程序員來說它們并沒有本質上的區別,因為兩者都基于COM系統結構,只不過ActiveX是組件的一個跨平臺標準,而COM是Windows專有的。
雖然微軟已經引入了一種新的存取數據的技術,但并沒有立即取消舊的技術,ODBC工作起來仍然很有效,并同OLE DB和ADO緊密地一起工作著。事實上,ODBC并不只是微軟的產品,也受到國際組件的控制。并且由于廣泛的使用,ODBC也不會突然消亡。隱藏在OLE DB背后的思想不是摒棄現有的技術,而是不斷地改進它們。

8.1.1 OLE DB和ADO的體系結構
前面已經給出了OLE DB與ADO在一些主要方面的簡要解釋。圖8-1顯示了這兩項技術與應用程序和數據存儲相互關系:

圖8-1 OLE DB、ADO與應用程序和數據存儲的關系
從圖8-1中可以看出整體思路。圖的頂端是應用程序(Web或常規的應用程序,這是無關緊要的),下面是提供對數據的訪問的ADO和/或OLE DB。ADO和OLE DB兩者兼有是因為OLE DB是一項基本技術。然而,OLE DB并不適用于所有語言,所以ADO位于OLE DB的上層,為那些不能直接訪問OLE DB的語言(如Visual Basic和腳本語言)提供編程接口。ADO提供了比OLE DB更容易的編程接口,因此即使那些可以直接使用OLE DB的編程語言,如C 或Java,也可使用ADO以簡化對數據的訪問。
圖8-1顯示的是微軟的編程語言,而ADO是一個COM組件,因此可用于任何與COM兼容的編程語言,比如Delphi或支持Active Scripting接口的腳本語言。所以,雖然ADO與平臺有關,但與開發的語言是無關的。當然,對于ASP主要使用VBScript和JScript,在組件中使用ADO時,有一些Visual Basic代碼。
現在知道了OLE DB和ADO允許訪問數據,可是為什么需要它們?老方法出問題了嗎?這里有兩個主要原因:
首先,OLE DB和ADO是用來訪問數據存儲的。注意這里指“數據存儲”而不是“數據庫”。盡管數據庫仍舊是數據存儲最為廣泛的形式,但并不一定含有全部的數據。一些消息系統,如Microsoft Exchange Server,也普遍地用于存儲數據。目錄服務(Directory Service)正開始在初露端倪,它們包含著有關用戶、機器等的數據;Web服務器中存有大量的信息。可以繼續羅列下去,很明顯需要一種能訪問所有這些不同類型數據的方法。
其次,源于Internet應用程序的興起與Web的狀態本質。過去的訪問數據的方法主要考慮與數據存儲保持永久連接的情況下處理數據。而OLE DB和ADO正是為解決這個問題而設計的,提供斷開連接的記錄集,我們將會在后面看到有關這方面的內容。

8.1.2 消費者與提供者
ADO系統結構圖展示了ADO是如何在應用程序和真實數據存儲之間發揮作用的。在微軟的文獻中,會看到兩個易懂的術語:消費者(Consumer)和提供者(Provider),但搞清它們的確切定義至關重要。
提供者是提供數據的物體,消費者是使用(消耗)這些數據的物體。
在編程中,經常會發現應用程序是數據的消費者。但提供者呢?一般是數據存儲,并且由于OLE DB被設計成用于與不同的數據存儲對話,因此對于每一個獨特類型的數據存儲都有一個OLE DB提供者。
這種單獨提供者的思想并不新,但使編程變得容易了。編寫程序與ADO或OLE DB對話,OLE DB再與提供者對話。這意味著只需學會一套訪問數據的方法,無論數據如何存儲,在某些情況下確實可以完全不改變任何代碼而只更換提供者。這就是ADO和OLE DB真正優越的地方,為數據存儲提供了一套常用的編程接口。
要連接到數據存儲,必須使用OLE DB提供者。提供給ADO 2.5的初始設置為:
· Jet OLE DB 4.0:用于微軟Access數據庫。
· DTS Packages:用于SQL Server的數據轉換服務(Data Transformation Services)。
· Internet Publishing:用于訪問Web服務器。
· Indexing Services:用于索引目錄(Index Catalogs)。
· Site Server Search:用于站點服務器查找目錄。
· ODBC Drivers:用于ODBC數據源。
· OLAP Services:用于微軟OLAP服務器。
· Oracle:用于Oracle數據庫。
· SQL Server:用于微軟SQL Server數據庫。
· Simple Provider:用于簡單的文本文件。
· MSDataShape:用于層次數據。
· Microsoft Directory Services:用于Windows 2000的目錄服務。
· DTS Flat File:用于SQL Server的數據轉換服務的平面文件管理。
這只是微軟提供的初始列表,并取決于安裝在服務器上的服務及軟件。以Oracle數據提供者為例,要求在客戶機上安裝Oracle的客戶端軟件。
可以從別的制造商那里獲得OLE DB提供者,用于其他數據存儲。甚至還可以編寫

分享:WebClass入門(1)
1.WebClass 簡介:WebClass 是一個VB組件,駐留在WEB SERVER 上,并對瀏覽器的輸入做出響應。對用戶來說,一個 IIS 應用程序好象是由一系列的HTML頁面組成。對開發者來說,一個 IIS 應用程

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尖扎县| 观塘区| 舞阳县| 新竹市| 东乌珠穆沁旗| 同仁县| 莱芜市| 宜君县| 阳泉市| 布拖县| 谷城县| 蓝山县| 杭锦后旗| 容城县| 新化县| 英吉沙县| 绍兴县| 伽师县| 彭阳县| 论坛| 汤阴县| 砚山县| 赫章县| 宁乡县| 重庆市| 伊宁县| 刚察县| 吴川市| 大宁县| 丁青县| 修武县| 西乌珠穆沁旗| 林西县| 阿克苏市| 高唐县| 西城区| 多伦县| 康保县| 雷山县| 徐水县| 嘉祥县|