术概述
ADO采用基于DAO和RDO 的对象,并提 供比DAO和RDO 更简单的对象模型(尽管会产 生一些冗余的功能,如现在进行一项操作时可 以用不止一种方法)。ADO中的对象层次结构 比DAO中的更平缓。ADO包含一些简化对数 据存储区数据的访问任务的内置对象。 应用程序连接到数据库可采取的途径,如 图13-6所示。
13.2 数据访问技术概述
图13-6 应用
程序与数据库连接的途径
13.2 数据访问技术概述
Visual Basic程序员可以使用ADO将应用 程序连接到OLE DB。 如果数据库不支持OLE DB,应用程序可 以通过ODBC连接。 Visual C++程序员则可以使用ADO或直接 通过OLE DB连接。
13.2 数据访问技术概述
5..NET 时代
Microsoft在开发.NET框架伊始,就重新设 计了数据访问模型。Microsoft 没有进一步扩 展 ADO,而是根据其成功的ADO对象模型经 验设计了新的ADO.NET。
ADO.NET 满足了 ADO无法满足的三个重 要需求:提供了断开的数据访问模型,这对 Web 环境至关重要;提供了与XML的紧密集 成;还提供了与.NET框架的无缝集成(如兼容 基类库类型系统)。
13.2 数据访问技术概述
ADO.NET 结构,如图13-7所示。在 ADO.NET 的结构中,虽然缺少了能够在 ADO 中执行诸多功能的记录集对象。但ADO.NET 具有几个专用对象以执行特定任务,用于代替 记录集对象。
13.2 数据访问技术概述
图13-7 ADO.NET 的结构
13.2 数据访问技术概述
Visual Studio.NET包括两个.
NET数据提 供程序(SQL Server .NET和OLE DB .NET)。 SQL Server.NET数据提供程序用于连接SQL Server 7.0 和更高版本数据库。OLE DB.NET 数据提供程序用于连接非SQL Server 数据库, 如 Oracle 或 IBM DB2。 应用程序通过 ADO.NET 连接数据库可采 用的各种途径,如图13-8所示。
13.2 数据访问技术概述
图13-8
ADO.NET 连接数据库的途径
13.2 数据访问技术概述
在选择途径时,首先要考虑的因素是应该 使用何种.NET数据提供程序的
问题。 如果使用SQL Server 7.0 或更高版本, 选用SQL Server.NET数据提供程序是非常有 效合理的,因为SQL Server.NET数据提供程 序通过表格数据流(TDS)协议直接和SQL Server 通讯。如果数据库是SQL Server 6.5 或任何 OLE DB 提供程序随附的非SQL Server 数据库(如Oracle),则应使用 OLE DB.NET数据提供程序。
13.2 数据访问技术概述
注意:即使是使用SQL Server 7.0 或更高 版本,用户仍然可以使用 OLE DB.NET数据提 供程序,但会失去通过 TDS 直接和SQL Server 通讯时的性能优势。然而,该非特定途 径的优势在于可移植性;无需修改代码就可以 交换所使用的数据库中的数据。
13.2 数据访问技术概述
其次,确定需要执行的任务。如果只需从 数据源中读取和显示数据,DataReader 对象 可能就足够了。但是,如果需要操作数据(可 能需要执行某些编辑和删除),则应使用数据 集对象。只在需要时才使用数据集,因为数据 集本身就比 DataReader 慢。 最近,Microsoft 刚刚发布了用于.NET的 第三个数据提供程序——ODBC.NET数据提供 程序 - 的 Release Candidate Beta 版本。
13.3 ADO数据访问技术
ADO作为数据库接口技术,在远程应用 方面有着强大
的功能,也适用于编写分布式的 多层应用程序。
13.3 ADO数据访问技术
13.3.1 ADO编程模型
1.ADO的主要操作
对ADO对象的主要操作主要包括6个方面:
(1)连接到数据源。同时,可确定对数据源的所 有更改是否已成功或没有发生。这是可选的、 通常涉及ADO的Connection对象。 (2)向数据源提交命令。通常涉及ADO的 Command对象。在
查询中可以与参数对象 (Parameter)协同使用,或优化执行。
13.3 ADO数据访问技术
(3)执行命令,比如一个SELECT脚本。
(4)如果提交的命令有结果返回,可以通过ADO 的Recordset对象对结果进行操作,数据存储 在缓存中。
(5)适当情况下,可将缓存中被修改的数据更新 到物理的存储上。
(6)提供错误检测。通常涉及ADO的Error对象。
13.3 ADO数据访问技术
在典型情况下,需要在编程模型中