在Delphi中使用DB Aware控件而不是非DB Aware控件的优点是什么?
我会说服一个朋友,在开发数据库应用程序时,在Delphi中使用数据库组件(DB Aware Controls)是迄今为止最好的选择.
这个辩论起始于多年前:他今天仍然坚持认为使用简单的控件(如TEdit,TStringGrid等),可以使用一组getter和setter方法来填充它们,是在灵活性和可维护性方面的最佳解决方案整个项目. 对我来说,这个声音至少是反直觉的. 我认为在开发数据库应用程序时,使用DB Aware Controls,如TDBEdit,TDBGrid等是正确的. 所以:请帮助我说服使用DB Aware Controls的声音建议! 感谢您提前发送至少他自己的建议的所有人,不管什么都赞成一个或另一个解决方案. – 解决方法
DB-Aware与非DB-Aware是一种过时的讨论. DB-Aware控件具有自动数据绑定,这意味着它们自动填充数据,更改检测并写入受限数据源的成员;在非dbaware控件中,由你完成这些任务.这也可能导致乱码 – 或者是加强框架只是做数据绑定.这两种情况都不好
数据源的种类和个人控制的质量将决定绩效.我看到很多代码来数据绑定TStringGrid,只是为了避免TDBGrid,因为纯粹主义(当TDbGrid会做得很好) – 只是一个荒唐的荒谬的时间. 当TClientDataset成为断开连接的应用程序的事实数据集时,它成为一个过时的讨论:您可以拉取数据,断开连接,处理数据,再次连接并应用更改.由于CDS DbAware控件可以执行99%的接口,因此您可以在下一个1%(对于一些复杂的接口)中使用非数据感知控件. 我仍然没有XE2来看看LiveBindings是否能够很好地执行OO数据绑定 – 如果是这样,现在所有控件都可以在需要时进行数据库感知. 编辑:在da-soft的答案中,他(她?)认为DbAware控件实现MVC模式,而LachlanG不同意,即使是这样,代码本身也不是MVC.我会在这里给我$0,02美分;-) 我认为在DataModule和Entity(如ERD)或DataModule和Form中使用1:1关系,您可以获得一个责任分离的应用程序: >形式dfm – >布局和设计时数据绑定(只有Datasources) 我通常有一个用于数据库连接的分离数据模块,它通过表单/实体的属性传递. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |