PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
14029 | 00/12/04 22:45:01 | RE(5):PB6.5: 1レコード複数カラムの検索方法:2 By Lucky |
13987 | 00/11/27 21:20:41 | RE(4):PB6.5: 1レコード複数カラムの検索方法:2 By ryochan |
13986 | 00/11/27 21:20:03 | RE(3):PB6.5: 1レコード複数カラムの検索方法:1 By ryochan |
13983 | 00/11/27 10:06:19 | RE(2):PB6.5: 1レコード複数カラムの検索方法 By t.y |
13980 | 00/11/25 17:04:47 | RE(1):PB6.5: 1レコード複数カラムの検索方法 By M.M |
13978 | 00/11/25 14:30:04 | PB6.5: 1レコード複数カラムの検索方法 By Lucky |
カテゴリ:PowerBuilderの開発環境
日付:2000年11月27日 10:06 発信者:t.y
題名:RE(2):PB6.5: 1レコード複数カラムの検索方法
M.Mさん、Luckyさん、おはようございます。
>と、こんな、感じで作ったんですが、かなり【遅い】です!
> :
>ループの中では、できるだけ命令や関数を省いた方がいいですよ。
ええっと...
1.DW上にあるカラムのみを対象
(DWに貼ったテキストオブジェクト、直線オブジェクト等は対象外)
2.全カラム文字列型(これは条件追加すれば他の型もできますけど)
3.調べるカラムの順番はSELECTの項目の並び順でいい
限定ということであれば、M.Mさんの考え方を考慮しつつ、下記のような感じで
いかがでしょう?
(同じく未実験君ですが、DWのカラムの値を見る方法としては、私は良く使う方法です)
もし全然質問の意図するところとはずしていましたら、すみません。
下記のサンプルは、字下げに全角スペースを使用していますので、カット&ペーストの際は
全角スペースを半角スペースにして下さい)
余談ですが、
M.Mさんの言われるように、
「同じ結果しか返さない関数はループ中に毎回評価されないように記述する」
というコーディングはどの言語でも通じるので、気をつけると速度改善に
つながります。
????????????????????????????????????????
string as_Keyword
string sColMax
long rowMax, colMax, currentRow
long i, j
rowMax = dw_target.RowCount()
currentRow = dw_target.Getrow()
sColMax = dw_target.Object.DataWindow.Column.Count //カラム数取得
colmax = long(sColMax)
FOR i = currentRow TO rowMax
FOR j = 1 TO colMax
IF dw_target.Object.Data[i, j] = as_keyword THEN
Messagebox(\"Find\" , \"該当文字が見つかりました。\")
RETURN 1
END IF
NEXT
NEXT
????????????????????????????????????????
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows98
DBMS Oracle SQL*Net 8
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.