在我們分配了TADOQuery的數據集提供一個Delphi應用程序進行了更新,將參數傳遞給查詢。當使用新參數值刷新TADOQuery時,這些值不會傳遞給數據集提供程序。如何確保參數在數據集提供
這似乎在Delphi 5好的工作,但我們正在我們的應用程序遷移到德爾福2010年,它似乎要打破這種聯繫。
有反對使用新值的數據集提供刷新參數的方法嗎?
在我們分配了TADOQuery的數據集提供一個Delphi應用程序進行了更新,將參數傳遞給查詢。當使用新參數值刷新TADOQuery時,這些值不會傳遞給數據集提供程序。如何確保參數在數據集提供
這似乎在Delphi 5好的工作,但我們正在我們的應用程序遷移到德爾福2010年,它似乎要打破這種聯繫。
有反對使用新值的數據集提供刷新參數的方法嗎?
我們已經收到了Embarcadero對此的迴應,並且似乎仍然存在將dbx組件連接到客戶端數據集和刷新參數的錯誤,但dbgo ADO組件不應該存在問題。
然而,有一個數據集提供這樣的一種方式,那就是呼籲FetchParams之前設置查詢活躍。即
QProvider := oADOQuery;
oADOQuery.Active := False;
oADOQuery.Params.ParamByName('MyParam').Value := 'New Value';
QProvider.FetchParams;
oADOQuery.Active := True;
我已經做了以下方式多年。我從來不知道,你可以只刷新查詢在Delphi 5重新準備查詢:
oADOQuery.Active := False;
oADOQuery.Params.ParamByName('MyParam').AsString := 'New Value';
oADOQuery.Active := True;
我相信這是標準的方式。
請注意,在StackOverflow中,你可以接受你自己的答案。如果這不是答案,而是原始問題的一部分,則應該編輯問題或向其添加註釋。我不明白你爲什麼發佈一個答案,但不接受它。 – jachguate 2010-09-27 23:00:33
@jachguate - 謝謝:) – Matt 2010-10-15 12:57:03