半日で業務アプリケーションが開発できる!(後編)
開発ステップ3:クライアントデータキャッシュの設定
「第1回:わずか半日で業務アプリケーションを開発しよう(前編)」では、Delphiの特徴やデータベース接続コンポーネントの設定のやり方を説明しました。今回はその続きとして、データキャッシュの設定から実行するまでの手順を説明します。
データベースアプリケーションの処理で面倒なのは、データベースサーバに問い合わせを行った結果、セットをクライアント環境でどのように扱うかとい う処理の部分です。グリッドのようにコントロールにデータを表示して編集可能にするには、クライアント環境にデータを保持し、そして双方向のカーソル移動 に対応しなければなりません。
今回使用する「TSQLDataSet」コンポーネントは、こうしたキャッシュを持っていませんので、Next方向のみのカーソルしかできません。 しかし、Delphiにはデータをキャッシュして表示するためのコンポーネントが用意されています。こうしたキャッシュ用のデータもすべてコンポーネント によって提供されており、コンポーネントの配置とプロパティの設定だけで機能を追加できるのが、Delphiの魅力です。
ここでは「TDataSetProvider」コンポーネントと「TClientDataSet」コンポーネントを使用して実現してみましょう。
データキャッシュ用のコンポーネントを配置する
マスターのCUSTOMERテーブル側のデータをキャッシュするために、ツールパレット上にある TDatasetProvider(DataSetProvier1)、TClientDataset(ClientDataSet1)、 TDataSource(DataSource2)コンポーネントをそれぞれダブルクリックし、フォーム上に貼り付けます(図13)。
DataSetProviderを設定する
オブジェクトインスペクタ上で、配置したTDataSetProvider(DataSetProvier1)コンポーネントのDataSourceプロパティをマスターのCUSTOMERに設定します(図2)。
CUSTOMERテーブルに関連付けられているDataSetProvider1を設定する
オブジェクトインスペクタ上で、TClientDataSet(ClientDataSet1)コンポーネントのProviderNameプロパティをCUSTOMERテーブルに関連付けられているDataSetProvider1に設定します(図3)。
DataSourceを設定する
オブジェクトインスペクタ上で、TDataSource(DataSource2)コンポーネントのDataSetプロパティをCUSTOMERテーブルに関連付けられているClientDataSet1に設定します(図4)。