我对Progress很新,甚至更新处理如果我错过任何明显的事情就道歉,我已经在网上看了但我还没找到我想要的东西。
我正在运行类似下面的动态查询,在此示例中运行查询后,相应记录的“age”字段显示在屏幕上,我理解这是如何从buffer-field属性完成的 - 方法,但我的问题是如何显示整个记录,是否存在等效的属性方法,或者我误解了一些关键的东西?感谢您的时间。 :
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
答案 0 :(得分:1)
使用静态“DISPLAY table-name”语句,没有“简单”的方法可以在一个语句中显示整个记录。您可以获取字段数(缓冲区句柄:NUM-FIELDS),然后逐步浏览各个字段并使用
显示它们的值DO i = 1 to bh:NUM-FIELDS:
DISPLAY bh:BUFFER-FIELD(i):BUFFER-VALUE WITH DOWN.
DOWN.
END.