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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.