Welcome

首页 / 软件开发 / .NET编程技术 / ADOCE与ADO.NET的差异

ADOCE与ADO.NET的差异2010-11-14aawolf你是一个需要将自己的知识和代码从PC移植到Pocket PC上的ADO开发人员吗?我将通过一些代码实例来向您展示ADO和ADOCE之间的相似和不同之处。

本文需要:

· Microsoft? eMbedded Visual Tools.

· Microsoft SQL Server 2000 Developer Edition.

· SQL Server 2000 Windows? CE Edition.

· Microsoft ADOCE (ActiveX? Data Objects CE) 3.1 included with SQL Server 2000 Windows CE Edition.

· To try the server-side examples, you need Microsoft Visual Studio? and ADO 2.6.

Gotchas

因为在CreateObject声明中有一处内存漏洞,所以你最好在你的程序中只创建ADOCE对象一次。在实例代码中,我将CreateObject的调用放到了每一个事件过程中,但是那只是为了比较ADO代码。

数据访问

大部分企业应用程序都是以数据为中心的,这意味着你需要知道如何储存信息。我的爱好是存储数据,当Pocket PC上使用的是真正的数据库——SQL Server 2000 Windows CE Edition。因此,我的第一个建议是得到你所需要的一个SQL Server 2000 Developer Edition的许可。

当你安装了SQL Server 2000 Windows CE Edition后,你将同时得到ADOCE 3.1,最新的版本。我将用它和PC上最新版的ADO 2.6进行比较。

主要差异

好了,让我们来首先大概地看一下重要的差别。下面是一个ADOCE不支持的ADO功能列表:

· Command and Parameter objects

· Collection objects

· Property object

· Recordset persistence (Recordset.Save)

· Asynchronous queries

· Disconnected Recordsets

· Dynamic creation of Recordsets

· Multiple queries (Recordset.NextRecordset)

对于我来说,没有的Recordset persistence意味着我不能将结果集存成Extensible Markup Language (XML)来供Pocket PC上的其他程序来调用。也许更重要的是,我不能将XML数据存入我的结果集中了。这造成了我需要进行从服务器组件中到Pocket PC上的数据转化或者相反——我也需要一些转化。我的建议是看一下Odyssey Software提供了什么。他们的Cefusion和ViaXML产品在这里都是有用的。如果你在寻找更长远(读Microsoft .NET)的方法来转换数据,你应该看一下pocketSOAP。

无论如何,大多数重要的功能在ADOCE中被实现了。现在我们来看一下在相同的数据访问环境中的一些差异。