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