[阅读: 1251] 2008-09-09 10:15:08
procedure TForm2.CreateEmbedTable;
begin
{----------------------------------------------------------------------------
用代码创建嵌套表。
注意创建顺序:
1. 首先创建主表的所有字段,但不要 CreateDataSet
2. 然后创建从表的所有字段,并且制定从表达 DataSetField 属性为主表的对应字段。
3. 只需要对主表执行 CreateDataSet 就可以了!
-------------------------------------------------------------------------------}
//-----------------------
with TIntegerField.Create(Self) do
begin
Name := 'ClientDataSet1ID';
FieldKind := fkData;
FieldName := 'ID';
DataSet := ClientDataSet1;
Required := True;
end;
with TStringField.Create(Self) do
begin
Name := 'ClientDataSet1MiaoShu';
FieldKind := fkData;
FieldName := 'MiaoShu';
Size := 12;
DataSet := ClientDataSet1;
end;
//TDataSetField 不需要特地指定 FieldKind
with TDataSetField.Create(Self) do
begin
Name := 'EmbdTable';
FieldName := 'ClientDataSet2';
DataSet := ClientDataSet1;
end;
//ClientDataSet1.CreateDataSet;
//-----------------------------------
with TIntegerField.Create(Self) do
begin
Name := 'TalentByVideosID';
FieldKind := fkData;
FieldName := 'TalentID';
//Size := 42;
DataSet := ClientDataSet2;
Required := True;
end;
with TStringField.Create(Self) do
begin
Name := 'TalentByVideoName';
FieldKind := fkData;
FieldName := 'TalentName';
Size := 42;
DataSet := ClientDataSet2;
Required := True;
end;
ClientDataSet2.DataSetField := TDataSetField(Self.FindComponent('EmbdTable'));
//ClientDataSet2.CreateDataSet;
ClientDataSet1.CreateDataSet;
end;