gpt4 book ai didi

database - 在 Delphi 中将字段添加到 FDMemTable

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:56 24 4
gpt4 key购买 nike

我正在使用 DBGrid 编写代码,但我无法使用 FDQuery 获取足够的数据。我想要“FDQuery”数据旁边的自定义数据。我找到了应该能够执行此操作的组件,它被称为 FDMemTable。我可以从 FDQuery 获取数据到 FDMemTable,但是我不能添加一个新的字段来放置不同的数据。所以我的问题是如何将数据与 FDQuery 正确连接并在 FDMemTable 中添加额外的列。

procedure TWorkflowDM.Temp;
var
Error: string;
Temp: string;
begin
try
FDQuery1.Open;
FDQuery1.FetchAll;
FDMemTable1.Data:= FDQuery1.Data;
FDMemTable1.FieldDefs.Add('Test', ftString, 20, False); <-ERROR (Error 'FDMemTable1: Field ''Test'' not found')
FDMemTable1.Open;
FDMemTable1.First;
while not FDMemTable1.Eof do
begin
Temp:= FDMemTable1.FieldByName('Test').AsString;
FDMemTable1.Next;
end;
except
on E: Exception do
Error:= E.Message;
end;
end;

最佳答案

我们从源数据集中复制字段定义并附加其他字段。然后我们调用 CreateDatasetoptionally set Active to true .这将创建所有必需的字段并打开 FDMemTable。然后我们通过 CopyDataset 方法填充它。此代码有效:

procedure TWorkflowDM.Temp;
var
Error: string;
Temp: string;
begin
try
FDQuery1.Open;
// FDQuery1.FetchAll;
FDMemTable1.FieldDefs := FDQuery1.FieldDefs;
FDMemTable1.FieldDefs.Add('Test', ftString, 20{, False}); // default parameter
FDMemTable1.CreateDataSet;//or just Open that sets Active to true;
FDMemTable1.CopyDataSet(FDQuery1);
FDMemTable1.First;
while not FDMemTable1.Eof do
begin
Temp := FDMemTable1.FieldByName('Test').AsString;
FDMemTable1.Next;
end;
except
on E: Exception do
Error := E.Message;
end;
end;

关于database - 在 Delphi 中将字段添加到 FDMemTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34789723/

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