我正在努力通过FOR EACH从表中只获取前2条记录。我的目标是只从表中读取前2条记录,并将一个字段值保存到变量中。
假设我有一个表MyTable,其中包含字段PartNr、CreationDate、Company和ID。
我的FOR EACH语句将如下所示:
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。
任何帮助都是非常感谢的。
发布于 2021-04-28 02:22:15
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.发布于 2021-05-06 04:23:09
如果它确实是您预先知道的有限次迭代,并且如果您正在根据您要处理的记录执行不同的逻辑,那么您也可以使用静态查询。这可能会使代码更整洁。
如下所示:
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.https://stackoverflow.com/questions/67288546
复制相似问题