PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
12703 00/08/09 17:48:49 RE(1):PB7.0: 動的SQLでカラムを動的に変えたい場合 By Taka
12702 00/08/09 16:30:09 PB7.0: 動的SQLでカラムを動的に変えたい場合 By ponta20

カテゴリ:スクリプトの記述
日付:2000年08月09日 16:30 発信者:ponta20
題名:PB7.0: 動的SQLでカラムを動的に変えたい場合

こんにちは。

動的SQLでDeclare文を宣言し、カーソルをopen、fetchした場合、
記述スクリプトは下記のとおりだとします。

// 動的SQL設定
ls_sql = \"SELECT columnA FROM \" + ls_tblname + \" WHERE \" + ls_where + \" FOR UPDATE NOWAIT\"

DECLARE lc_cursor DYNAMIC CURSOR FOR SQLSA ;
PREPARE SQLSA FROM :ls_sql ;
OPEN  lc_cursor ;
FETCH lc_cursor INTO :ll_count ;
CLOSE lc_cursor;
-------------------------------------------------------
ここから質問です。
動的SQLではSELECT句に任意のカラムを指定しますが、
テーブル名を動的に変えるので、SELECT句のカラム名もテーブルによってかわってきます。(columnAの部分)
”*”(アスタディスク)は使えないと思うのですが、みなさんはこういうとき
カラム名はどのようにされていますか?
データロック用なのでカラムはどれでもよく、変数でわざわざ指定する必要もないと思います。

意味わかっていただけましたでしょうか?

過去ログには目を通しましたが、これといったものがありませんでした。
よろしくお願いします。


SQL文のls_tblname とls_where は変数にテーブル名と条件節を格納しています。


過去ログをすべて見ましたが、その中にFor Updateで実行するとページ違反となる、という書きこみ
もありましたが、それとはあきらかに違いますよね。



付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

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

Server SoftWare

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

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