asp学习网: 首页 >> asp.net >> ADO.NET 2.0 功能一览

ADO.NET 2.0 功能一览


System.Transactions集成

ADO.NET 2.0中的SqlClient提供程序与新的System.Transactions命名空间相集成,
从而启用了称为可升级事务的行为。尽管Transact SQL可以用来启动本地或分布式事务
(BEGIN TRANSACTION和BEGIN DISTRIBUTED TRANSACTION),但在某些情况下(特别是
在客户端/中间层编程方面),程序员可能希望编写可以在一个数据库方案或多个数据库
方案中使用的组件。这些方案可能包含多个SQL Server实例,并且SQL Server可以自动
检测到多实例访问并将事务从本地“提升”到多实例(分布式)。即使在使用多个数据
库产品或多个连接的情况下,这也是可能的,前提是第一个数据库(在分布式事务术语
中称为资源管理器)是SQL Server。在ADO.NET中,默认情况下启用可升级的事务。

客户端故障转移

SQL Server 2005通过数据库镜像支持“热备用(hot spare)”功能。如果SQL Se
rver实例失败,工作可以自动转移到备份服务器。这需要一个称为(并不意外)“目击
实例”的实例来见证故障转移。热备用方案还要求现有的客户端连接必须“知道”故障
转移(建立与新服务器实例的连接)。在下一次尝试访问时产生错误并且必须通过客户
端编程手动进行“故障转移”的客户端连接是次最优的方案。ADO.NET 2.0中的SqlClie
nt支持客户端故障转移,而不必对应用程序进行专门编程。

对新事务隔离级别的支持

SQL Server 2005通过两个方法支持事务隔离:锁定和版本控制。以前版本的SQL S
erver支持锁定,但不支持版本控制。SQL Server 2005支持两种类型的版本控制,它们
被称为语句级别版本控制和事务级别版本控制。该功能旨在有选择地减少极端环境中的
锁定,并简化为版本控制数据库而设计的应用程序的转换。为版本控制数据库设计的应
用程序在移植到锁定数据库时通常需要进行重大更改,反之亦然。版本控制数据库的默
认行为几乎总是语句级别版本控制。有关差异的详细信息,请参阅Beauchemin、Berglu
nd和Sullivan撰写的 A First Look at SQL Server 2005 for Developers(http://sh
opping.msn.com/search/detail.aspx?pcId=4644&prodId=2190289&ptnrid=141&ptnrda
ta=0)。

不同的版本控制和锁定行为等同于使用特定的事务隔离级别启动事务。ANSI SQL规
范定义了四个事务隔离级别:

· READ UNCOMMITED.

· READ COMMITTED.

· REPEATABLE READ.

· SERIALIZABLE.

SQL Server支持所有四个隔离级别,甚至在SQL Server 2005之前就是如此。版本控
制数据库通常仅支持READ COMMITTED和SERIALIZABLE。在版本控制数据库中,READ COM
MITTED实现语句级别版本控制,而SERIALIZABLE实现事务级别版本控制。READ COMMITT
ED是几乎所有数据库的默认行为,无论是使用锁定还是使用版本控制。通过以数据库为
单位设置数据库选项,可以启用语句级别版本控制,并且使其成为默认行为。在启用语
句版本控制时,指定IsolationLevel.ReadCommitted或IsolationLevel.ReadUncommitt
ed会使用该行为。为了支持事务级别隔离,SQL Server 2005定义了一个新的隔离级别—
IsolationLevel.Snapshot,SqlClient(并且只有SqlClient)支持该隔离级别。该隔离
级别是必需的,因为您可以分别启用语句级别或事务级别的版本控制,并且IsolationL
evel.Serializable已经由SQL Server使用以便与锁定行为相对应。

数据类型——UDT、XML数据类型以及“MAX”BLOB和CLOB

SQL Server 2005添加了对用户定义类型的支持,一个原生XML数据类型和更好的大
型数据支持。它通过使用Transact SQL类型VARCHAR(MAX)、NVARCHAR(MAX)和VARBINARY
(MAX)改进了大型数据支持。用户定义的类型和原生XML类型由SQL:1999和SQL:2003规范
定义。为了将这些数据类型与SqlClient一起使用,定义了System.Data.SqlTypes命名空
间中的新类(SqlUdt和SqlXml),将支持添加到SqlDbTypes枚举,并且增强了IDataRea
der.GetValue以支持将UDT作为.NET对象类型返回以及将XML作为.NET字符串返回。这些
新的SQL Server 2005类型在SQL SELECT语句所返回的DataReader中受到支持,并且作为
使用SqlParameter的参数。特殊的SqlMetaData类可以返回有关这些新数据类型的扩展属
性的信息(例如某个强类型XML列所依附的XML架构集合)或某个UDT的数据库名称。您可
以直接从客户端在通用代码中以及在数据集中使用这些类型。最后,您可以从客户端对
“MAX”数据类型执行部分更新,这要求使用ADO.NET 2.0之前的特殊SQL函数。

from:asp学习网/title:ADO.NET 2.0 功能一览/ time:2007-6-1 22:18:11

本文主题,NET

在.Net中访问操作MySQL数据库

ADO.NET的一些使用经验

ADO.net中的数据库连接

ASP.NET中数据库连接大全

ADO to ADO.NET:未来之路

通过ADO.NET访问数据库 教程与实例

ADO.NET快速起步 [特别推荐]

为 ADO 程序员设计的 ADO.NET !

asp教程 ©2006-2007 aspxuexi.com | 关于站点 | 版权隐私 | 站内搜索
复制或者翻版 请于夜间进行