☆BDP.NETを使ったマスター/詳細

Windowsフォームアプリケーションで、BDP.NET を使って InterBase のデータベースをマスター/詳細に設定し、フォーム上の2つのDataGridに表示させて見ました。
(試行錯誤した結果なので、この方法が正しいかどうかは疑問ですので、ご注意を・・・。)

1.BdpConnection1 を配置します。
  次に、オブジェクトインスペクタ下部の接続エディタをクリックしてデータベースを
  設定します。

2.BdpDataAdapter1 を配置します。
  a) オブジェクトインスペクタ下部のデータアダプタの設定をクリックします。
  b) テーブル一覧からマスターテーブルに該当するものを選択します。
  c) SQL生成ボタンを押します。
  d) データセットタブに移動して、データセットの新規作成を選択し、
    OKボタンを押します。
  e) BdpDataAdapter1 の Active を True にして False にします。
    ※この動作により dataSet1 の Tables 内に、このテーブルが追加されます。
    ※これをしないでリレーションを設定しようとすると
     「リレーションを追加する前に、データセットにテーブルが必要です。」
     とエラーメッセージが表示されます。

3.BdpDataAdapter2を配置します。
  a) オブジェクトインスペクタ下部のデータアダプタの設定をクリックします。
  b) テーブル一覧から詳細テーブルに該当するものを選択します。
  c) SQL生成ボタンを押します。
  d) データセットタブに移動して、既存のデータセットを選択し、OKボタンを押します。
    ※このとき BdpDataAdapter1 で作成したデータセットと同じものを選択します。
  e) BdpDataAdapter2 の Active を True にして False とします。

4.自動的に作成された dataSet1 の設定
  a) Relations のボタンをクリックします。
  b) 追加ボタンを押します。
  c) 親テーブルにマスター、子テーブルに詳細テーブルが表示されていることを
    確認して、キー列と外部キー列で該当するフィールドを選択します。
   ※名前は、デフォルトのリレーション1のままで問題なかったです。
  d) OKボタンを押してから、閉じます。
   ※BdpDataAdapterがOpenされていてもこの作業によりCloseされます。

5.DataGrid を2つフォームに配置します。
  a) DataGrid1 の DataSourceDataTable1 とします。
  b) DataGrid1 の AllowNavigationFalse とします。
    ※これは必要ありませんが、マスター側で詳細が参照できてややこしいから。
  c) DataGrid2 の DataSourceDataTable1 とします。
  d) DataGrid2 の DataMemberリレーション1 とします。

6.BdpDataAdapter1、BdpDataAdapter2 の ActiveTrue にして、実行します。

一応、マスター/詳細になっています。
(くどいですが、この方法が正解かどうかは不明です。)

DBExpress の時もマスター/詳細の設定がわからなくて、FDelphiで教えて頂いたことを思い出しました。
Helpを、もう少し親切に作ってくれたらなぁ~。

|