中国开发网: 论坛: Delphi/BCB: 贴子 672739
pcplayer: TClientDataSet 动态创建字段以及嵌套表
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;

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录