首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何省略FOR EACH in Progress语句?

如何省略FOR EACH in Progress语句?
EN

Stack Overflow用户
提问于 2021-04-28 02:15:40
回答 2查看 319关注 0票数 2

我正在努力通过FOR EACH从表中只获取前2条记录。我的目标是只从表中读取前2条记录,并将一个字段值保存到变量中。

假设我有一个表MyTable,其中包含字段PartNrCreationDateCompanyID

我的FOR EACH语句将如下所示:

代码语言:javascript
复制
FOR EACH MyTable
   WHERE MyTable.Company = "TestCompany"
      AND MyTable.CreationDate >= 01.01.2021
   NO-LOCK:
   
END.

例如,对于每条语句,将找到15条记录。然而,我只需要前两个。我想将first记录的PartNr存储在一个变量中,将second记录的PartNr存储在另一个变量中。

在此之后,FOR EACH语句应该结束。

我也尝试过使用FIND FIRST,但我不知道如何获得第二个记录。

当我使用loops时,我很想找一个与break关键字等价的python

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-28 02:22:15

代码语言:javascript
复制
DEFINE VARIABLE iCounter AS INTEGER NO-UNDO . 

myLoop:
FOR EACH MyTable
   WHERE MyTable.Company = "TestCompany"
      AND MyTable.CreationDate >= 01.01.2021
   NO-LOCK:
   
   iCounter = iCounter + 1 . 

   IF iCounter = 2 THEN 
      LEAVE myLoop . 

END.
票数 6
EN

Stack Overflow用户

发布于 2021-05-06 04:23:09

如果它确实是您预先知道的有限次迭代,并且如果您正在根据您要处理的记录执行不同的逻辑,那么您也可以使用静态查询。这可能会使代码更整洁。

如下所示:

代码语言:javascript
复制
OPEN QUERY qMyQuery 
    FOR EACH MyTable
       WHERE MyTable.Company = "TestCompany"
         AND MyTable.CreationDate >= 01.01.2021
         NO-LOCK. 
         
QUERY qMyQuery:GET-FIRST. 

QUERY qMyQuery:GET-NEXT. 

CLOSE QUERY qMyQuery.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67288546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档