我想问一下有经验的用户,如果您更喜欢使用数据感知控件在数据库中添加,插入,删除和编辑数据,或者您愿意这样做.
我开发了一些数据库应用程序,其中为了"用户友好的策略",我遇到了复杂的表事件网络(afterinsert,afteredit,after ...和beforeedit,beforeinsert,之前......).之后,调试应用程序是一项非常讨厌的工作.
意识到这种风险(后来由另一个应用程序)我试图避免这个问题,所以我更加注意编写代码,可读性和全面性.从一开始它似乎一切都好,但由于我需要在发送和加载数据之前处理一些预处理内容,我再次遇到同样的问题,"慢慢地,不可避免地".有时候无论如何我都无法使用数据控件,而DAControl在开始时看起来像是一个"酷"的功能,最终会成为一个障碍.我"必须"为非数据控件控件编写特殊例程,以便表现为数据感知.然后我问自己,为什么我应该使用数据控件?在非数据控件控件上找到应用程序架构是否更好?当然,它需要更多时间来编写防错代码,但是它值得吗?我不知道...
我几次遇到过我,就像jinxed:天堂开始时的地狱......
我不知道,如果我用错误的方法编写DB程序,如果有一些标准的通用做法如何进行.或者,如果这是每个人的常见问题?
Thanx的建议和你的经验
我编写的应用程序使用数据感知组件来对抗使用非数据感知组件的TTable样式组件和应用程序.
我最喜欢的是使用数据感知组件但使用TClientDataSets而不是TTable样式组件.
使用TClientDataSet我不必使我的用户界面结构模仿我的数据库结构.这是非常灵活,从几个表中的数据来填充它,然后当你申请更新还给你可以手动添加/删除/更新记录,您认为合适的数据库.
秘密应该在于数据集参数自动化,您可以创建一个控件,以主从方式将数据集粘合在一起,只需定义它们之间的连接即可。当然,这种控制应该以其他通用方式提供表单参数。在这种情况下,使用实体标识符调用表单,所有数据集都将以正确的顺序填充,并允许提供商自动更新数据库中的数据。
一般来说,最好让数据集精确表示带有可选计算字段的表(fkInternalCalc 有时效果更好,因为它随着行更改而不是字段更改而更新)绑定到数据感知控件。数据感知控制是最佳方法,并且不易出错。就像在每个方面一样,也有例外。
如果您必须编写太多粘合函数,则问题可能出在设计模式而不是 VCL 中。
归档时间: |
|
查看次数: |
2097 次 |
最近记录: |