【发布时间】:2020-11-05 08:20:13
【问题描述】:
使用动态创建的TFDQuery、TClientDataSet 和TDataSetProvider 我遇到了“缺少数据提供者或数据包”的代码:
procedure ResetSavedPasswords(ADataModuleDataBaseAdmin : TDataModuleDataBaseAdmin);
var
lQuery : TFDQuery;
lCDS : TClientDataSet;
lProvider : TDataSetProvider;
begin
lFrmBezig := TFormBezig.Create(nil);
lQuery := TFDQuery.Create(nil);
lProvider := TDataSetProvider.Create(Application);
lCDS := TClientDataSet.Create(nil);
try
lQuery.Connection := ADataModuleDataBaseAdmin.FDConnectionTimeTell;
lQuery.CachedUpdates := true;
lProvider.Options := lProvider.Options - [poUseQuoteChar];
lProvider.DataSet := lQuery;
lProvider.Name := 'prvResetSavedPW';
lCDS.ProviderName := lProvider.Name;
lQuery.SQL.Text := Format('select %s,%s from <owner>%s',[sMedMedID,sMedSavedPassword,SMedTabelNaam]),ADataModuleDataBaseAdmin;
lCDS.Open;
请注意,创建的TDataSetProvider 有一个所有者,基于this answer:
如果DatasetProvider没有所有者,ClientDataSet就无法获得对提供者的引用
但我仍然收到错误消息。打开TFDQuery首先显示它有数据。
可能是什么原因?
在 Delphi 10.4 中使用 FireDAC。悉尼在 Win32 应用程序中。
【问题讨论】:
标签: delphi firedac tclientdataset delphi-10.4-sydney