【发布时间】:2013-11-13 21:43:02
【问题描述】:
我通常使用带有持久字段的 TADOQuery(每个表 1 个),但现在我发现自己陷入了一个难题: 我必须同时运行多个查询(只读)。
我发现了很多关于线程的文档。然而,这意味着为每个操作新建一个 TADOQuery,所以现在我正在寻找使用它们的最佳方式。
就像我说的,我通常使用持久性字段,但在这种情况下,我不确定它们是不是最好的,因为必须为每个 TADOQuery 实例创建它们,而这些实例的生命周期很短。
在我看来,我有 4 个选择:
1 - Create a MyTADOQuery class with it's own persistent fields for each table
2 - Add manually the persistent fields to each new TADOQuery
3 - ADOQuery.FieldByName('field').Value approach
4 - ADOQuery.Field[i].Value approach
选项 1 似乎有点矫枉过正(实际上没有尝试过),选项 3 很慢。
我的常识告诉我选项 4 是要走的路,但我必须问:
以上哪一项(或其他 - 请告诉我)是使用新创建的 TADOQuery 实例的最快和最便宜的方式?
谢谢
【问题讨论】:
-
5.尝试在同一批次中提交多个查询(例如,使用参数化存储过程)并使用 NextRecordSet 方法获取第 2..N 个结果集。
-
@MartynA - 到目前为止我还没有使用过 TADOStoredProc,但我会看看。似乎很有希望。 TLama - 很好,谢谢!
-
顺便说一句,对不起,我假设您使用 Sql Server 作为后端。如果你是,你可能会发现从 TAdoQuery 开始最容易,它很高兴从 Sql Server 一次获得多个结果集。一旦它的工作票嘘声,把它们放在一个 SP 中,也许是为了整洁。