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中被实现了。现在我们来看一下在相同的数据访问环境中的一些差异。