gpt4 book ai didi

database - 如何在运行时向客户端数据集添加字段?

转载 作者:太空狗 更新时间:2023-10-30 01:46:18 25 4
gpt4 key购买 nike

我有一个 TClientDataSet,它由 TTable 的数据集提供。数据集有两个字段:邮政编码(字符串,5)和街道(字符串,20)

在运行时我想显示第三个字段(字符串,20)。该字段的例程是获取邮政编码作为参数,并返回属于该邮政编码的城市。

问题仅在于将计算字段添加到现有字段中。填充数据本身不是问题。

我试过:

  cds.SetProvider(Table1);
cds.FieldDefs.Add('city', ftString, 20);

cds.Open;

cds.Edit;
cds.FieldByName('city').AsString := 'Test'; // --> errormessage (field not found)
cds.Post;

cds是我的clientdataset,Table1是一个paradox Table,但是其他数据库也是一样的问题。

提前致谢

最佳答案

如果您想添加基础数据中现有字段以外的其他字段,您还需要手动添加现有字段。添加字段时需要关闭数据集,但如果您不想手动跟踪所有字段详细信息,则可以使用 FieldDefs.Update 获取必要的元数据。基本上是这样的:

var
i: Integer;
Field: TField;
begin
cds.SetProvider(Table1);

// add existing fields
cds.FieldDefs.Update;
for i := 0 to cds.FieldDefs.Count - 1 do
cds.FieldDefs[i].CreateField(cds);

// add calculated field
Field := TStringField.Create(cds);
Field.FieldName := 'city';
Field.Calculated := True;
Field.DataSet := cds;

cds.Open;
end;


另见 excellent article通过 Cary Jensen .

关于database - 如何在运行时向客户端数据集添加字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4934103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com