如何确保参数已在数据集提供程序中更新

时间:2010-03-18 16:28:18

标签: delphi delphi-2010

在Delphi应用程序中,我们为数据集提供程序分配了一个TADOQuery,并将参数传递给Query。使用新参数值刷新TADOQuery时,这些参数值不会传递给数据集提供程序。

这似乎在Delphi 5中运行正常,但我们正在将我们的应用程序迁移到Delphi 2010,它似乎打破了这个链接。

是否有办法使用新值刷新数据集提供程序的参数?

2 个答案:

答案 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;

我相信这是标准方式。