动态创建lookup后如何关闭数据集

zuilu5339 2018-05-09 08:32:02
with TDataSet(FDMemTable1) do
begin
TDataSetDesigner.Create(FDMemTable1);
try
Designer.BeginDesign;
Designer.DataSet.Fields.Clear;
for i := 0 to FieldDefList.Count - 1 do
begin
with FieldDefList.FieldDefs[i].CreateField(Self) do
end;

if FDMemTable1.Fields.FindField('F_ClientID')<>nil then
begin
with TStringField.Create(Self) do
begin
FieldName := 'F_Client';
FieldKind := fkLookup;
DataSet := FDMemTable1;
KeyFields := 'F_ClientID';
LookupDataSet := Frm_Main.FClient;;
LookupKeyFields := 'F_ID';
LookupResultField := 'F_Name';
end;
end;

FDMemTable1.CreateDataSet;
finally
Designer.EndDesign;
Designer.Free;
end;
end;

第一个数据集打开的时候里面有F_ClientID这个这段,所以打开正常
select F_BillID,F_clientID from t_sellorder
这时候显示正常的

然后再打开另一个数据集
select F_ID,F_name from t_Item
这时候数据集就打不开了,sql跟踪是有的,我测试了是因为这个lookup,我就是想问如何在打开这个select F_ID,F_name from t_Item 这个之前关闭FDMemTable1的数据集,这样可以正常显示


...全文
1181 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zuilu5339 2018-05-10
  • 打赏
  • 举报
回复
这个不难的呀,只是不懂如何关闭原来的数据集,重新打开 select F_ID,F_name from t_Item 没有F_ClientID的这个字段所以打不开了,所以我想实现打开之前先关闭原来的数据集,就是这个lookup
zuilu5339 2018-05-10
  • 打赏
  • 举报
回复
就是打开数据集的时候也关闭lookup
zuilu5339 2018-05-10
  • 打赏
  • 举报
回复
看来用的人少了,没人知道了

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧