在这个问题中:
描述了一个 ADO 错误,其中过滤器字符串在 .Locates 期间被忽略。
这给我们从 BDE 迁移带来了问题,因为我们有很多代码会根据用户输入更改过滤器。
我们曾期望 TADOQuery 提供有效的迁移路径。我们错了。
我们当然可以将我们当前的过滤器更改为 WHERE 语句,但这是大量的工作,并且有将过滤器字符串连接到无过滤器的 WHERE 语句等的风险。
上面链接的问题的公认答案表明使用TCustomADODataSet.Recordset.Find的可能性
我们可以安全地在 TADOQuery 中使用 RecordSet.Find 来实现 .Locates 吗?即RecordSet.Find 是否更新TADOQuery 放置在TADOQuery 周围的任何包装器?
如果是这样,有人可以显示从 Delphi XE5 到 RecordSet 的示例调用吗?我很难弄清楚这些论点。