PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
14574 01/02/13 13:28:51 RE(3):PB6: 二重ループのレスポンスについて By t.y
14560 01/02/11 01:15:09 RE(2):PB6: 二重ループのレスポンスについて By Taka
14554 01/02/09 20:30:21 RE(1):PB6: 二重ループのレスポンスについて By M.M
14552 01/02/09 19:29:41 PB6: 二重ループのレスポンスについて By t.y

カテゴリ:スクリプトの記述
日付:2001年02月11日 01:15 発信者:Taka
題名:RE(2):PB6: 二重ループのレスポンスについて

t.yさん、M.M@壊れかけている(笑)さん、こんばんは。

objectドット表記よりもGetItemXXX関数のほうが速いという話は、
M.M@壊れかけさんのおっしゃるとおりです。
さらに言えば、カラム名(文字列)よりもカラム番号(数値)で
GetItemXXXしたほうが、一層速くなります。


ただ今回のような処理では、do?loop + Find関数を使うと良いでしょう。


long row1, row2, max
max = dw_1.RowCount()

row1 = dw_1.Find(\"t_lccd <> \'ABC\'\",1,max)
do while( row1 > 0 )
 row2 = dw_1.Find(\"t_entf <> \'1\'\",row1,max)
 do while(row2 > 0)
  (処理)
  if row2 = max then exit //無限ループの防止
  row2 = dw_1.Find(\"t_entf <> \'1\'\",row2 +1,max)
 loop
 if row1 = max then exit //無限ループの防止
 row1 = dw_1.Find(\"t_lccd <> \'ABC\'\",row1 +1,max)
loop


こんな感じでしょうか。
(t.yさんの例で FOR j = i + 1 となっている部分は省略しています。)

P.S.
以前のM.Mさんなら、これぐらいアドバイスできたと思うのですが...(^^;
やっぱり壊れかけていると推測されます。(笑)

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS INFORMIX Net 7
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS INFORMIX-OnLine 7
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.