ADOTable和ClientDataSet有什么区别?

4
4个回答

4
主要区别在于ClientDataSet可以在没有连接外部数据库的情况下操作。您可以将其用作内存表或从文件加载其内容。结合使用DataSetProvider,它经常用于克服单向数据集的限制和作为高速缓存。

3

ClientDataSet是一种内存中的数据集,具有许多有用的附加功能。与Interbase/Firebird表和查询相比,一个巨大的优势是您不需要保持交易活动,例如在您显示数据网格时。

看看这篇文章:在每个数据库应用程序中使用ClientDataSet


3
客户端数据集是一种通用的实现,无论底层数据库访问库如何,均可工作。它可以通过提供程序与任何TCustomDataset后代一起使用,无论是dbExpress数据集、BDE数据集、ADO数据集还是Delphi中可用于直接数据库访问的众多库之一(即ODAC、Direct Oracle Access等)。它还可以在多层模式下工作,其中数据访问数据集和提供程序位于远程服务器应用程序中,而TClientDataset位于客户端应用程序中,允许进行“瘦客户端”部署,这不需要在客户端安装数据库客户端或数据访问库,例如ADO(当使用最新版本的Delphi时,所需的midas.dll代码可以链接到应用程序,否则只需要midas.dll)。
此外,它还可以用作内存表,能够将数据存储在本地文件中。它允许“公文包”模型,其中瘦客户端在未连接到数据库时仍然可以工作,然后在连接变得可用时进行“同步”。这在过去更加有用,当时无线访问并不普遍。
正如您所看到的,TClientDataset提供了比TADODataset更多的功能。

0
我能想到最重要的区别是解决更新冲突。实际上,TClientDataSet公开了方便的ReconcileErrorForm对话框,它包装了向用户显示旧记录和新记录并允许他们指定采取什么操作的过程,而例如使用TADOTable时,你基本上是自己解决冲突。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接