Openedge 如何为每个正在进行的语句省略?
我很难通过Openedge 如何为每个正在进行的语句省略?,openedge,progress-4gl,Openedge,Progress 4gl,我很难通过从一个表中获取前两条记录。 我的目标是从表中只读取前2条记录,并将一个字段值保存到变量中 假设我有一个表MyTable,其中包含字段PartNr,CreationDate,公司,ID 我对每个语句的如下所示: FOR EACH MyTable WHERE MyTable.Company = "TestCompany" AND MyTable.CreationDate >= 01.01.2021 NO-LOCK: END. OP
从一个表中获取前两条记录。
我的目标是从表中只读取前2条记录,并将一个字段值保存到变量中
假设我有一个表MyTable
,其中包含字段PartNr
,CreationDate
,公司
,ID
我对每个
语句的如下所示:
FOR EACH MyTable
WHERE MyTable.Company = "TestCompany"
AND MyTable.CreationDate >= 01.01.2021
NO-LOCK:
END.
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.
例如,每个语句可以找到15条记录。然而,我只需要前两个。
我想将first
记录的PartNr
存储在一个变量中,将second
记录的PartNr
存储在另一个变量中
之后,每个
语句的应该结束
我也尝试过使用findfirst
,但我不知道如何获取第二条记录
在使用loops
时,我正在寻找一个相当于break
关键字的python
非常感谢您提供的任何帮助。如果您事先知道的迭代次数确实有限,并且如果您正在根据当前记录执行不同的逻辑,那么您也可以使用静态查询。这可能会使代码更简洁
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.
大概是这样的:
FOR EACH MyTable
WHERE MyTable.Company = "TestCompany"
AND MyTable.CreationDate >= 01.01.2021
NO-LOCK:
END.
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.
如果您事先知道迭代次数是有限的,并且根据所达到的记录执行不同的逻辑,那么您也可以使用静态查询。这可能会使代码更简洁
大概是这样的:
FOR EACH MyTable
WHERE MyTable.Company = "TestCompany"
AND MyTable.CreationDate >= 01.01.2021
NO-LOCK:
END.
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.
您还可以为每个
语句添加,而iCounter<2
则添加到。@nwahmaet+100,虽然leave
有其用途,但我发现它破坏了自然流,几乎和goto
语句一样严重。:-)您还可以为每个
语句添加,而iCounter<2
则添加到。@nwahmaet+100,虽然leave
有其用途,但我发现它破坏了自然流,几乎和goto
语句一样严重。:-)很有趣你的问题的标题如何包含答案:-)很有趣你的问题的标题如何包含答案:-)