在Delphi应用程序中,我们为数据集提供程序分配了一个TADOQuery,并将参数传递给Query。使用新参数值刷新TADOQuery时,这些参数值不会传递给数据集提供程序。
这似乎在Delphi 5中运行正常,但我们正在将我们的应用程序迁移到Delphi 2010,它似乎打破了这个链接。
是否有办法使用新值刷新数据集提供程序的参数?
答案 0 :(得分:3)
我们收到了Embarcadero对此的回复,似乎仍然存在将dbx组件连接到客户端数据集和刷新参数的错误,dbgo ADO组件应该没有问题。
但是,有一种方法可以使用数据集提供程序执行此操作,即在将查询设置为活动之前调用FetchParams。即。
QProvider := oADOQuery;
oADOQuery.Active := False;
oADOQuery.Params.ParamByName('MyParam').Value := 'New Value';
QProvider.FetchParams;
oADOQuery.Active := True;
答案 1 :(得分:0)
多年来我一直这样做。我从来不知道你可以在Delphi 5中刷新查询来重新准备查询:
oADOQuery.Active := False;
oADOQuery.Params.ParamByName('MyParam').AsString := 'New Value';
oADOQuery.Active := True;
我相信这是标准方式。