データセット フィールドでの作業
データセット項目は,ネストされたデータセット内に格納されたデータへのアクセスを提供します。NestedDataSet プロパティは,ネストされたデータセットを参照します。これでネストされたデータセットの中のデータは,ネストされたデータセットの項目オブジェクトを通してアクセスできます。
データセット項目の表示
TDBGrid コントロールを使用すると,データセット項目に格納されているデータを表示できます。Vcl.DBGrids.TDBGrid コントロールでは,データセット項目が文字列「(DataSet)」とともにデータセット列の各セルに表示され,実行時には省略記号ボタンがその右側に表示されます。省略記号をクリックすると,現在レコードのデータセット項目に対応するデータセットを表示するグリッドを持つ新しいフォームが表示されます。またこのフォームは,DB グリッドの ShowPopupEditor メソッドを使用して,プログラミングによって表示できます。たとえば,グリッドの中の 7 番めの列がデータセット項目を表す場合,次のコードによって現在のレコードのその項目に対応するデータセットが表示されます。
DBGrid1.ShowPopupEditor(DBGrid1.Columns[7]);
DBGrid1->ShowPopupEditor(DBGrid1->Columns->Items[7], -1, -1);
ネストされたデータセット内のデータにアクセスする
データセット項目は通常,データベース対応コントロールに直接結合されていません。むしろ,ネストされたデータセットは単なるデータセットであり,格納されているデータは TDataSet の下位項目を通して取得します。使用するデータセットの種類は,親データセット(データセット項目を所有するデータセット)によって決まります。たとえば,BDE 対応データセットの場合は TNestedTable 使ってデータセット項目のデータを表し,クライアントデータセットの場合は別のクライアントデータセットを使用します。
データセット項目内のデータにアクセスするには,
- 親データセットで項目エディタを呼び出して,持続的 Data.DB.TDataSetField オブジェクトを作成します。
- データセット項目内の値を表すためデータセットを作成します。このデータセットの型は,親データセットに対応したものでなければなりません。
- 手順 2 で作成されたデータセットの DataSetField プロパティを,手順 1 で作成された持続的データセット項目に設定します。
現在レコードにネストされたデータセット項目に値がある場合,詳細データセットコンポーネントはネストされたデータとともにレコードを含みます。それ以外の場合は,ネストされたデータセットは空になります。
ネストされたデータセットにレコードを挿入する前に,対応するレコードをマスターテーブル内に登録しなければなりません。挿入されたレコードが登録されていない場合,ネストされたデータセットが登録する前に自動的に登録されます。