PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
8880 99/10/22 12:25:13 RE(3):PB6.5: deleterow>こんなやり方もありますよ By リエッチ
8856 99/10/21 16:17:07 RE(2):PB6.5: deleterow By 240SX
8855 99/10/21 15:54:12 RE(1):PB6.5: deleterow By Potato
8854 99/10/21 14:50:03 PB6.5: deleterow By 240SX

カテゴリ:スクリプトの記述
日付:1999年10月21日 16:17 発信者:240SX
題名:RE(2):PB6.5: deleterow

Potatoさん、こんにちは。

>240SXさん、こんにちは。

>> 下記のロジックで・・・不正な処理と表示され強制終了されてしまうのは何故ですか?
>>
>>>>
>>For li_loop_cnt = 1 To dw_1.RowCount()
>>

>>   If 条件?
>>
>>      dw_1.DeleteRow(li_loop_cnt)
>>      li_loop_cnt = li_loop_cnt - 1
>>
>>   End If
>>
>>Next
>>
>>  ※条件式に間違いはないです。
>>
>直接の原因ではないかもしれませんが、
>まず、dw_1.RowCount()はループ処理の前でLongの変数に入れてから
>その変数をFor loopに使ったほうがよいです。
>そうでないと、For loopで毎回行のカウントを行なうことになりま
>すから。

>それから、DeleteRowでループで削除するときは、
>後ろの行からstep -1で削除したほうがよいです。
>なぜなら、1行削除されると、削除された次の行が削除された
>行番号となりますから。

>それから、For loopで使っている制御カウンタli_loop_cntを
>ループ内でいじらないほうがよいのでは?

>ここではたいした差がないかもしれませんが、Dec li_loop_cnt
>よりLongやIntegerのほうが計算が速いのでは?

ご返答ありがとうございます。
dw_1.SetRow(li_loop_cou)
deleterow(0)
としたらうまくいきました。

Dec li_loop_cnt は Integer li_loop_cou の間違いでした。



付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows98
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)

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