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 (記載なし)

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