【发布时间】:2015-07-20 11:19:21
【问题描述】:
在 Progress 9.1e 中,我使用动态查询来提取可扩展的数据。
我正在使用表单的查询
FOR EACH tableName FIELDS( fieldName1 fieldName2 ) NO-LOCK
WHERE fieldName3 = "Value"
AND fieldName4 = "AnotherValue"
对于其中一些查询,特别是表中字段很少的查询,字段短语正在工作并且仅检索请求的内容。
然而,在其他查询中,有趣的是那些更长、更复杂的字段列表(包括数组等),它会检索整个记录。
我已经阅读了有关检索联接所需的其他字段的各种讨论,但我已经简化了查询,因此这不是问题。
查询指定无锁,get-next 参数也是如此,因此排他锁的完整记录也不应该是相关的。
Progress 是否有其他标准决定选择整条记录,有没有办法阻止它?
【问题讨论】:
-
您应该关心检索到的 FIELDS 的唯一时间是通过慢速网络连接以最大程度地减少网络流量。
-
@TimKuehn - 这可能是预期用途,但我正在尝试构建一个动态查询过程,该过程允许提取额外数据的配置以用于“未来打样”,并且进度动态查询不'没有 SELECT 短语,FIELDS 似乎是仅提取所选记录中所需字段的唯一选项。否则,我将不得不在其他地方的配置中包含必填字段列表,这并不理想。
-
我不知道您将如何让 FIELDS 做您正在寻找的事情 - 根据 10.2B 文档:“当您指定字段列表时,AVM 可能会检索附加字段或完整记录,具体取决于检索操作的类型和提供记录的 DataServer。”实质上,记录短语的 FIELDS 部分是 AVM 可以出于各种原因覆盖的建议。
-
9.1 版的未来校对似乎是一个奇怪的想法,因为 9.1e 来自很久以前......
-
@Tim #1,我必须恭敬地不同意(尽管不是大声疾呼)。我们观察到在远程 AppServer 和并行运行并通过超高速网络连接的 DB 服务器之间使用 FIELDS 时,速度存在显着差异。我们实际上并没有经常使用 FIELDS,而且我还在犹豫是否值得额外的复杂性。
标签: progress-4gl