ASP 3.0高级编程(三十六)
ASP 3.0高级编程(三十六),ASP 3.0高级编程(三十六)
在本书前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与应用程序和数据存储的关系<