半日で業務アプリケーションが開発できる!(前編)
データベース接続用のコンポーネントを配置する
マスターのテーブルに関連付ける詳細のテーブルとしてSALESテーブルを使用します。先ほど行った手順と同じように、データエクスプローラからSALESテーブルをフォーム上にドラッグ&ドロップします。フォーム上のコンポーネントはわかりやすいように、マウスを使って配置するとよいでしょう(図11)。
DataSourceプロパティをDataSource1に設定する
マスター/フォームデザイナ上で、貼り付けたSALESテーブルのSQLDataSetコンポーネントをマウスで選択し、オブジェクトインスペクタ上のDataSourceプロパティをDataSource1(マスターのテーブルのDataSource)に設定します。
SALESテーブルをCUST_NOフィールドをキーとして関連付けを行う
設定されたマスターのテーブルと詳細となるSALESテーブルをCUST_NOフィールドをキーとして関連付けを行います。オブジェクトインスペクタ上のCommandTypeプロパティを、現在設定されているctTableから「ctQuery」に変更し、CommandTextプロパティをクリックして表示された「…」ボタンを押し、CommandTextの設定を行います。
テーブル名が表示されていないのであれば「DBオブジェクトの取得」ボタンを押すことで、データベースのスキーマ情報を得ることができます。また表示されたテーブルやフィールドは、それぞれ「SQLにテーブルを追加」「項目をSQLに追加」ボタンを使用することにより、SQL文にタイプミスの心配なしで追加することができます。
ここで指定するSQL文は下記のものとなります。
select * from SALES where CUST_NO = :CUST_NO
SQLDataSetは、実行時に「:CUST_NO」パラメータで指定されたフィールドをDataSourceプロパティで関連付けられたマスターのテーブルの同名フィールドと関連付け、マスター/詳細関係を成立させます。マスターのCUSTOMERテーブルのCUST_NOの値が変化すると、そのCUST_NOの値に基づいて対応するデータを詳細となるSALESテーブルより取得します(図12)。
これで基本となるマスター/詳細のセットは完了しました。次回はクライアントデータキャッシュの設定から実際に実行するまでの手順を紹介します。