Progress 4gl Progress 4GL:所有字段的缓冲区句柄属性

Progress 4gl Progress 4GL:所有字段的缓冲区句柄属性,progress-4gl,openedge,dynamicquery,Progress 4gl,Openedge,Dynamicquery,我是一个新手,甚至是新手,所以如果我错过了任何明显的东西,我表示歉意,我已经在网上找过了,但还没有找到我要找的东西 我正在运行一个类似于下面的动态查询,在这个例子中,在运行查询之后,屏幕上会显示相应记录的“年龄”字段,我知道如何通过缓冲区字段属性方法来实现这一点,但我的问题是如何显示整个记录,是否有一个等效的属性方法,还是我误解了一些重要的事情?。谢谢你抽出时间 def var tbl as character no-undo. def var fld as character no-undo.

我是一个新手,甚至是新手,所以如果我错过了任何明显的东西,我表示歉意,我已经在网上找过了,但还没有找到我要找的东西

我正在运行一个类似于下面的动态查询,在这个例子中,在运行查询之后,屏幕上会显示相应记录的“年龄”字段,我知道如何通过缓冲区字段属性方法来实现这一点,但我的问题是如何显示整个记录,是否有一个等效的属性方法,还是我误解了一些重要的事情?。谢谢你抽出时间

def var tbl as character no-undo.
def var fld as character no-undo.
def var qh as handle no-undo.
def var bh as handle no-undo.
def var fh as handle no-undo.

assign tbl = "customer".
assign fld = "age".
create buffer bh for table tbl.
create query qh.
qh:set-buffers( bh ).
qh:query-prepare( "for each " + tbl + " where name = 'tom'" ).
qh:query-open.

do transaction:
    qh:get-first( no-lock ).
    fh = bh:buffer-field( fld ).
    display fh:buffer-value.
end.

delete object bh.
delete object qh
没有一种“简单”的方法可以像静态“displaytablename”语句那样在一条语句中显示整个记录。您可以获取字段的计数(缓冲区句柄:NUM-fields),然后单步遍历各个字段并使用

DO i = 1 to bh:NUM-FIELDS: 
     DISPLAY bh:BUFFER-FIELD(i):BUFFER-VALUE WITH DOWN.
     DOWN.
END.