使用Delphi进行数据库开发的最佳实践是什么?

use*_*285 12 database delphi oop

  1. 如何高效地使用RAD方式(重用代码).任何样品,现有的库,基本的crud生成器?
  2. 我该如何设计OOP方式?哪些设计模式用于连接,抽象不同的引擎/数据库访问层(bde-dbexpress-ado),基本的CRUD操作.

小智 4

我有自己的 Delphi/MySQL 框架,可以让我非常快速地添加“新屏幕”。我不会分享它,但我可以描述我采取的方法:

我使用带有基于 TFrame 层次结构的选项卡式界面。我创建一个选项卡并将 TFrame 链接到其中。

我使用标准 mysql 存储过程实现来处理所有的繁杂管道和并发控制。客户SEL、客户GET、客户UPD、客户DEL 等...

我的主窗体本质上包含导航栏面板和包含 TPageControl 的面板

我的层次结构中的类的示例

TFrame TMFrame - 我的派生,具有捕获 OnShow、OnHide 和其他一些细节的接口实现

--TWebBrowserFrame --TDataAwareFrame --TObjectEditFrame --TCustomerEditFrame --TOrderEditFrame 等... --TObjectListFrame --TCustomerListFrame

ETC...

和一些对话框..

TDialog TMDialog --TDataAwareDialog --TObjectEditDialog -- TContactEditDialog 等. --TObjectSelectDialog --TContactSelectDialog

ETC...

当我添加要管理的新对象时,它可能是客户的新属性,假设我们想要跟踪客户拥有哪些车辆。

创建表 CustomerVehicles 我运行我的特殊 sproc 生成器来创建我的 SEL、GET、UPD、DEL 测试这些...

从我上面提到的基类派生,删除一些控件。将选项卡添加到 TCustomerEdit。

Delphi 始终将数据集作为抽象层,通过数据源将其公开给您的 GUI。将数据集添加到客户数据模块,然后“注册”。我的派生数据模块类 TMDataModule 中我自己的自定义函数

安全控制在框架中也得到了类似的处理。我“注册”需要安全标志可见或启用的组件。

我通常可以在一小时内添加一个新对象、构建存储过程、添加维护屏幕。

当然,这通常只是开始,通常当您添加某些内容时,您不仅仅将其用于跟踪。如果这是一个车库应用程序,我们想要添加客户带入车库的车辆,对其进行 ID 以便我们可以跟踪历史记录。但即便如此,速度也很快。

我尝试过使用“更新的开发工具”将其分包给年轻人,但当我说我可以用 Delphi 将这一切速度提高十倍时,他们似乎从来不相信我!我可以在两个小时内完成没有错误的事情,而他们似乎花了两天的时间,但他们仍然有错误......

DO - 仔细规划您的 VFI!正如有人提到的,如果您想更改父类之一的组件名称,请做好遇到麻烦的准备。您将需要打开并“编辑”层次结构中的每个子项,即使您清理了 DCU,您仍然可能会遇到一些 DFM 地狱。我可以向你保证,在 2006 年这仍然是一个问题。

不要创建一个怪物数据模块

请花点时间进行前期设计,创建大量依赖项后进行重构可能是一个有趣的挑战,但当您必须快速让新东西工作时,这就是一场噩梦!