http://knowledgebase.progress.com/articles/Article/P5496
我试过For Each tableA无锁定,带有i整数增量。 我也试过累积。 但我没有运气。我认为是因为桌子非常大。
为累积。如果我有多个字段作为键,我如何从索引中受益?。
以下是数据样本。
表名是tableA 键索引是trxNum,CtrlNum,SeqNum
我试图以这种方式输入密钥索引。但我认为这不是一个有效的语法:
FOR EACH trxCtld NO-LOCK:
ACCUMULATE trxNum, CtrlNum, SeqNum (COUNT).
END.
以及如何显示进度的技巧,如循环完成的次数。我认为显示每个10000循环以弹出一条消息说"嘿我已完成10000循环"等等...
谢谢
我估计tableA有大约200万条记录。
答案 0 :(得分:4)
简单明了的方法:
define variable i as integer no-undo.
for each trxCtld no-lock:
i = i + 1.
if i modulo 1000 then display i.
end.
display i.
需要沿着这些方向显示进度。如果您只想要数字:
SQL-89方式(SQL-89嵌入在4GL中,你不应该把它用于任何复杂的东西,但它偶尔会像这样快速和脏的方便:
select count(*) from trxCtld.
动态查询方式:
define variable q as handle no-undo.
create query q.
q:forward-only = yes.
q:add-buffer( buffer trxCtld:handle ).
q:query-prepare( "preselect each site no-lock" ).
q:query-open.
display q:num-results.