3

背景:SQLデータベースをストレージとして使用するデスクトップアプリケーションを開発したいと考えています。データベースに接続しているユーザーは一度に1人だけです。
メンテナンスを容易にするために、GUIをBusnissLogicから分離したいと思います。したがって、各ダイアログにDataModule(BLが実装されている場所)を使用することを考えました。

私の質問:TClientDatasetコンポーネントを挿入する適切な場所はどこですか?ダイアログまたはデータモジュールで直接?

4

5 に答える 5

5

個人的には、TDatasetの子孫を常にデータモジュールに配置します。ある時点でフォームを再設計することにした場合でも、データセットを自由に使用できます。フォーム間での情報の共有も簡単になります。一般に、GUIとデータは別々に保管してください。

于 2010-01-15T19:16:26.087 に答える
2

TClientDataSetが同時に複数の画面で使用されない場合は、便宜上、それらをDataModuleに配置しても安全です。ただし、同じTClientDataSetにアクセスする画面が2つ以上ある場合、データセットにはカーソルが1つしかなく、1つの画面で別のレコードに移動すると、他の画面でも別のレコードに移動するため、問題が発生します。その場合:データを使用する画面にTClientDatasetを配置します。接続はすべてのデータセットで共有されているため、引き続きデータモジュールに接続できます。

于 2010-01-15T16:08:51.937 に答える
2

DataSetsをDataModulesに配置します。そうすれば、詳細ビューやグリッド内のリストのように、同じデータセットを指す異なるフォームの複数のビューを持つことができ、それらは常に自動的に同期されます
また、ビジネスルールを使用したデータとプレゼンテーション機能を使用したユーザーインターフェイスの分離を形式化して、ビジネスルールの変更やUIの個別の再設計を容易にします。 また、フォームの複数のインスタンスが異なるデータにアクセスする必要がある場合は、いつでも複数のデータモジュールをインスタンス化し、各フォームを関連するフォームにフックできます。

于 2010-01-15T20:00:19.593 に答える
1

データモジュールのデータセット(ただし、フォームまたはフレームのデータソース)は、常にうまく機能してきました。

于 2010-01-18T09:56:08.160 に答える
1

データスナップの方法:

  • データアクセス層とTDatasetProviderコンポーネントを備えたBLデータモジュールに加えて、ビジネスコードがあります
  • TClientDatasetsだけでデータモジュールを持っています。

このように、DataSnap(またはclientdatasetsを再利用できる他のn層テクノロジー)を使用して実装をn層に変更する場合は、BLデータモジュールを適切な層に移動するだけです。

于 2010-01-18T13:14:02.263 に答える