加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在Delphi中使用DB Aware控件而不是非DB Aware控件的优点是什么?

发布时间:2020-12-15 06:10:52 所属栏目:大数据 来源:网络整理
导读:我会说服一个朋友,在开发数据库应用程序时,在Delphi中使用数据库组件(DB Aware Controls)是迄今为止最好的选择. 这个辩论起始于多年前:他今天仍然坚持认为使用简单的控件(如TEdit,TStringGrid等),可以使用一组getter和setter方法来填充它们,是在灵活性和可
我会说服一个朋友,在开发数据库应用程序时,在Delphi中使用数据库组件(DB Aware Controls)是迄今为止最好的选择.

这个辩论起始于多年前:他今天仍然坚持认为使用简单的控件(如TEdit,TStringGrid等),可以使用一组getter和setter方法来填充它们,是在灵活性和可维护性方面的最佳解决方案整个项目.

对我来说,这个声音至少是反直觉的.

我认为在开发数据库应用程序时,使用DB Aware Controls,如TDBEdit,TDBGrid等是正确的.

所以:请帮助我说服使用DB Aware Controls的声音建议!

感谢您提前发送至少他自己的建议的所有人,不管什么都赞成一个或另一个解决方案.


fabio vitale

解决方法

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)
> form * .pas – >控制接口并要求数据模块提供数据(像控制器一样)
>数据模块 – >回答表单数据检索请求的方法
和数据更新

我通常有一个用于数据库连接的分离数据模块,它通过表单/实体的属性传递.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读