架构更改后未更新Firedac查询字段列表

时间:2014-03-11 06:09:00

标签: delphi firedac

我在SQL中创建一个临时表,然后向其中添加一个新字段。似乎Firedac正在缓存此临时表的字段列表 以下代码为我提供了“FDQuery5:Field'Acable'未找到。”

  FDQuery5.Connection := FDConnection1;
  FDConnection1.ExecSQL('Select StockNo into #Temp from Stock');
  FDQuery5.SQL.Text := 'Select * From #Temp';
  FDQuery5.open;
  FDConnection1.ExecSQL('Alter Table #Temp add Available Char(1)');
  FDQuery5.Close;
  FDQuery5.open;
  ShowMessage(FDQuery5.FieldByName('Available').AsString);

将XE5与Firedac一起使用。 我尝试过Connection.RefreshMetadataCache,并从FetchOptions.Cache中删除了fiMeta。

如果修改SQL.Text,我可以让Firedac识别新字段。这是不可取的,因为我的应用程序需要在很多地方进行修改。

1 个答案:

答案 0 :(得分:3)

调用FDQuery5.Close后,查询仍然准备就绪。这意味着,它还缓存结果集结构。要准备查询,请使用FDQuery5.Disconnect替换FDQuery5.Close。