一些背景知识:我想开发一个桌面应用程序,使用SQL数据库作为存储。一次只有一个用户连接到数据库。
为了便于维护,我想将GUI从Busniss Logic中分离出来。因此,我想对每个对话框使用DataModule (实现BL的地方)。
我的问题是:哪里是插入TClientDataset组件的合适位置?直接在对话框中还是在DataModule中?
发布于 2010-01-16 03:16:26
就我个人而言,我总是将TDataset的后代放在一个数据模块中。如果您在某个时候决定重新设计窗体,您仍然可以使用您的数据集。因此,在表单之间共享信息也更容易。一般来说,让你的GUI和数据分开!
发布于 2010-01-16 00:08:52
如果TClientDataSet不会同时被多个屏幕使用,为了方便起见,将它们放在DataModule上是安全的。但是,当您有两个或多个屏幕访问相同的TClientDataSet时,您将遇到问题,因为数据集只有一个光标,移动到一个屏幕上的另一个记录也会移动到其他屏幕上的另一个记录。在这种情况下:将TClientDataset放在使用数据的屏幕上。连接仍然可以放在数据模块上,因为它是由所有数据集共享的。
发布于 2010-01-16 04:00:20
我会将DataSets放在DataModules中。这样,你就可以让多个不同形式的视图指向同一个DataSet上,就像一个详细信息视图和一个网格中的列表一样,它们将始终保持同步自动。
它还将具有业务规则的数据界面和具有表示功能的用户界面之间的分离正式化,使得可以更轻松地独立更改业务规则或重新设计UI 。
如果您需要让表单的多个实例访问不同的数据,则始终可以实例化多个DataModules并将每个表单与其相关的表单挂钩。
https://stackoverflow.com/questions/2072882
复制相似问题