gpt4 book ai didi

delphi - 如何在没有 CreateDataset 的情况下向数据集添加新字段?

转载 作者:行者123 更新时间:2023-12-03 18:18:02 38 4
gpt4 key购买 nike

我有一个数据集 TclientDataSet,其中的字段由代码创建。我需要用户在保留现有数据的同时附加这些附加字段。

`MYclientDataSet.FieldDefs.Add(s, ftString, 20);
MYclientDataSet.CreateDataset;
MYclientDataSet.Open;
MYclientDataSet.edit;
MYclientDataSet.FieldByName(s).AsString := 'Test';
MYclientDataSet.post;`

这有效,但 CreateDataset 会删除所有数据。有没有办法将新字段添加到数据集中?

我尝试了很多其他的解决方案,但似乎都没有用

非常感谢

最佳答案

您可以使用以下代码实现此目的,它基本上保存当前数据,创建新的字段结构并将保存的数据复制回来:

var
cds: TClientDataSet;
begin
cds := TClientDataSet.Create(nil);
try
cds.Data := MyClientDataSet.Data;
MyClientDataSet.Close;
MyClientDataSet.FieldDefs := cds.FieldDefs;
MyClientDataSet.FieldDefs.Add('Note', ftString, 20);
MyClientDataSet.CreateDataSet;
cds.First;
while not cds.Eof do begin
MyClientDataSet.Append;
MyClientDataSet.CopyFields(cds);
MyClientDataSet.FieldByName('Note').AsString := 'Test';
MyClientDataSet.Post;
cds.Next;
end;
finally
cds.Free;
end;
end;

关于delphi - 如何在没有 CreateDataset 的情况下向数据集添加新字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45505782/

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