统计在线人数...

ADO+ 引导数据种类的演变(转自 ms 二)

[ 来源:ASP教程 | 作者:admin | 时间:2001-1-2 上午 12:35:23 | 浏览:统计中... ]

两种情形中,您都将数据说明(例如,一个 XML 字符串)转换为一个专用于平台的操作对象(即一个 JavaScript 对象)。在这样做的过程中,您安全地将您的数据从一层发送到另一层,而不考虑安装的操作系统或软件。





--------------------------------------------------------------------------------





ADO+ 命令



尽管 DataSet 对象提供一个内存中数据存储的工具,您还需要另一个工具对各种表进行创建和初始化。这一工具就是 DataSetCommand 对象,它代表一个将使用连接和命令的细节隐藏起来的集中式控制台。DataSetCommand 对象允许某一 DataSet 对象与源数据存储器间的数据检索和保存。它负责从物理存储器中提取数据,然后将其推送到各数据表和关系中。DataSetCommand 对象还负责向实际数据库传输任何更新、插入或删除操作。DataSetCommand 对象通过底层 OLE DB 提供者能够理解的 SQL 命令或命令字符串完成这一功能。DataSetCommand 对象以两种形式存在:



SQLDataSetCommand 对象





ADODataSetCommand 对象

它们可以被当作在数据表和数据源中的对应表之间的代理。数据源是用于 SQLDataSetCommand 对象的 SQL Server 7.0(或更新版本)以及用于 ADODataSetCommand 对象的任何其它 OLE DB 提供者。



一般说来,ADO+ 能够识别并处理两种类型的数据源:SQL Server 7.0(及更新版本)以及可以通过 OLE DB 提供者进行访问的任何数据源。这些又称为被管理的提供者。



作为使用 DataSetCommand 对象的一种替换(如代码示例 1 中所示),您可以通过使用诸如连接和命令之类的较为熟悉的对象,直接对被管理的提供者进行操作。



代码示例 1



Dim oDS as DataSet

Dim oCMD as SQLDataSetCommand



oDS = New DataSet

oCMD = new SQLDataSetCommand("Select * from employees", strConn)

oCMD.FillDataSet(oDS, "EmployeesList")



Dim oRow as DataRow

For Each oRow in oDS.Tables(0).Rows

   Console.WriteLine(oRow(0).ToString())

Next



通过查看这种类型的 ADO+ 代码,您会发现它与旧式的 ADO 编程没有多大的差别。它具有新的对象、新的编程接口、经过改进的新功能,但代码模式相同。如代码示例 2 中所示。



代码示例 2



Dim oCN As SQLConnection

Dim oCMD As SQLCommand

Dim oDR As ADODataReader

oCN = New SQLConnection(strNWind)

oCMD = New SQLCommand("MyStoredProc 'Davolio'", oCN)

oCMD.CommandType = CommandType.StoredProcedure

Try

   oCN.Open()

   oCMD.Execute(oDR)



   While oDR.Read

      Console.WriteLine(oDR("LastName").ToString))

   End While

Catch e As Exception

      Console.WriteLine(e.ToString)

Finally

      oDR.Close()

      oCN.Close()

End Try



请注意,上述代码具有 Microsoft Visual Basic® 7.0 引入的一些语法元素的特征 — 特别是最终取代了 On Error 机制的 Try-Catch 结构。ADO+ 代码充分利用了提供诸如 Console 之类的系统对象的.NET 运行时服务。



还有什么特殊的功能可以帮助您确定革新的 DataSetCommand 方法是否优于使用传统的 ADO 吗?通过使用 DataSetCommand 对象与数据源进行通信,基本上与通过使用 ADO 连接和命令相同,并带有一个重要的推论:所有的 ADO+ 对象,如 DataSetCommand 对象,都可以通过派生新的、更专用的类而进行定制。因此,举例来说,您可以控制将数据集的更改传送到数据库的方式,以及(比方说)优化性能、对数据进行压缩或加密、执行数据验证以及许多其它功能。





--------------------------------------------------------------------------------





强类型编程



您通过 ADO 对数据库对象和类似 Recordset 和 Fields 的集合进行操作。除了将实际数据视为某种参数外,这种方法没有什么错误:



Set oRS = New ADODB.Recordset

oRS.Open strSQL, strConn

While Not oRS.EOF

MsgBox oRS("FirstName") & " " & oRS("LastName")

oRS.MoveNext

Wend



在上述 ADO 代码片断中,第一个和最后一个名称被用作进入 Recordset 和 Fields 集合的入口点。由于 Visual Basic 的缺省属性,您可以编写相对容易阅读的代码。依照 ADO,某一给定记录字段的“完整对象模型路径”应为:



oRS.Fields("firstname").value



此外,ADO 总是使用 Variant 数据类型,以便与基于脚本的环境(特别是 ASP)相一致。



ADO+ 通过提供借助数据的自然名称对存储于数据集中的数据进行访问的能力,使数据库编程更进了一步。如果要在某一数据集中寻址某一表,您可以使用该表的 ADO+ 名称并对使用列和行的名称对列和行进行访问,而不是通过基于集合的方法。此外,所有的有关变量都拥有一个特定的(与 Variant 相对)数据类型。这称为强类型编程。上面显示的对一个 Employees 表中的 FirstName 和 LastName 进行操纵的代码可以按下面的形式重新编写:



MsgBox Employees.FirstName & " " & Employees.LastName



一种具有类型的 DataSet 即是一个自 DataSet 继承的类。采用数据集的强类型版本是有益的,原因是 IDE 自身可以实时地向您通知可能的类型不匹配错误,而且 Microsoft IntelliSense® 技术可以随时向您建议一些方法和属性。





--------------------------------------------------------------------------------





摘要



ADO+ 不仅仅是对数据进行操作的另一个对象模型。从本质上说,它是在范围更广、跨平台方案中的 ADO 的重现。ADO+ 是扩展的 ADO,它在能够理解 XML 的任何平台上与任何软件组件协同工作。它对数据进行建模,而不是对数据库或数据提供者。它从数据库基础结构中提取数据,并将其置于一种中性的环境中,数据在这种环境中就是数据,无论存储介质、物理结构或用来对其进行访问的 API 究竟是什么。其关键即是 XML,它代表了一种用于 ADO+ 数据集的 I/O 控制台。另一个重要的方面是主要对象(即数据集)的断开连接和在内存中的性质。



因此,您可以发送数据的 XML 说明,并让 ADO+ 服务器端的组件将其构建为一个数据集。您也可以拥有非 ADO+ 组件,它们只是获取该 XML 说明后对其运行自己的分析程序并获得同样的结果。ADO+ 专用于 Windows,但它可以与几乎所有的平台交换数据。请留意跟踪 ADO+ 演变的后续文章。      
   
      
   


原作者:不详

来 源:www.microsoft.com

上一页  [1] [2] 

共有0人参与评价,平均得分:0分
评论内容只代表网友观点,与本站立场无关! 查看完整内容
   

当前在线人数
QQ:748838 MSN:allen_xia#msn.com E-mail:allenxia666#126.com QQ群:站长联盟北方区-北京(28200145) 站长联盟南方区-上海(67713522)