1

我对 Progress 相当陌生,如果我错过了任何明显的东西,我什至更难以处理如此道歉,我已经在网上查看过,但还没有找到我想要的东西。

我正在运行类似于下面的动态查询,在此示例中,在运行查询之后,相应记录的“年龄”字段显示在屏幕上,我了解这是如何从缓冲区字段属性方法完成的,但是我的问题是如何显示整个记录,是否有等效的属性方法,或者我误解了一些关键的东西?感谢您的时间。:

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
4

1 回答 1

1

没有像使用静态“DISPLAY table-name”语句那样在一个语句中显示整个记录的“简单”方法。您可以获取字段的计数(缓冲区句柄:NUM-FIELDS),然后逐步浏览各个字段并使用显示它们的值

DO i = 1 to bh:NUM-FIELDS: 
     DISPLAY bh:BUFFER-FIELD(i):BUFFER-VALUE WITH DOWN.
     DOWN.
END.
于 2014-02-08T03:10:25.173 回答