2016-06-24 7 views
0

http://knowledgebase.progress.com/articles/Article/P5496プログレス4GLがどのように私は増分を整数と私はそれぞれのにtableAのためのロックを試していない

テーブルの行数を数えます。 私はまた累積しました。 しかし私は幸運を得ない。私が思うのは、テーブルが本当に大きいからです。

(累積)キーとして複数のフィールドがある場合、どのようにインデックスから利益を得ることができますか。

ここにデータサンプルがあります。

表名は、キーインデックスは、私はキーインデックスをこのように入力しようとしたtrxNum、CtrlNum、SEQNUM

あるにtableA です。

FOR EACH trxCtld NO-LOCK: 
    ACCUMULATE trxNum, CtrlNum, SeqNum (COUNT). 
END. 

、どのようなので、ループが実行される回数のように、進行状況を表示するにはトリックのようになります。しかし、私は有効な構文ではないと思います。私は

私はguesstimating午前にtableAは約2万ドルを持っているあなたに感謝...そうで「ちょっと私は10000ループを行っている」と言ってメッセージをポップアップ表示するために、すべての10000ループを示していいだろう考えていました記録。

答えて

3

無地でシンプルな方法:

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. 
+0

もレコード数がtabanalys出力に含まれていることを追加することができます – jdpjamesp

+0

質問はどのように多くをそこに見つけるために行をカウントしない増分progress-を示す程度です。 –

+1

OTOH私はスローをやったと思うそこの行を数える例をいくつかw ... –

関連する問題