动态创建lookup后如何关闭数据集
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的数据集,这样可以正常显示