PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
7054 99/07/08 09:56:04 RE(9):PB6.5: 動的SQLで、FROM句を動的に変えるには? By junk
7051 99/07/07 20:43:01 RE(8):PB6.5: 動的SQLで、FROM句を動的に変えるには? By M.M
7047 99/07/07 18:49:59 RE(7):PB6.5: 動的SQLで、FROM句を動的に変えるには? By Taka
7045 99/07/07 17:27:21 RE(6):PB6.5: 動的SQLで、FROM句を動的に変えるには? By てとらぽっと
7044 99/07/07 17:08:03 RE(5):PB6.5: 動的SQLで、FROM句を動的に変えるには? By HFintegrale
7042 99/07/07 16:31:26 RE(4):PB6.5: 動的SQLで、FROM句を動的に変えるには? By junk
7034 99/07/07 12:31:40 RE(3):PB6.5: 動的SQLで、FROM句を動的に変えるには? By HFintegrale
7031 99/07/07 10:59:00 RE(2):PB6.5: 動的SQLで、FROM句を動的に変えるには? By junk
6986 99/07/05 13:14:39 RE(1):PB6.5: 動的SQLで、FROM句を動的に変えるには? By M.M
6984 99/07/05 12:05:28 PB6.5: 動的SQLで、FROM句を動的に変えるには? By junk

カテゴリ:スクリプトの記述
日付:1999年07月07日 16:31 発信者:junk
題名:RE(4):PB6.5: 動的SQLで、FROM句を動的に変えるには?

HFintegraleさん、M.Mさん、こんにちは。

その後、スクリプトを変えて試してみたところ、
FROM 句に ? を使うとこの現象が起きることがわかりました。

ちょっと記述が乱暴ですが、自分で記述したスクリプトをもとに
例を書いてみます。

例1 (OK)
ls_prod = THIS.GetItemString(row, \'pc\')
ls_sqlStatement = \"SELECT KANJI_NAME FROM SCHEMA.TABLE WHERE PC = ?\"
DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA; 
PREPARE SQLSA FROM :ls_sqlStatement;
OPEN DYNAMIC my_cursor USING :ls_prod;
FETCH my_cursor INTO :ls_kanji;
CLOSE my_cursor;
IF SQLCA.SQLCode = 0 THEN
   << 略 >>
ELSE
   MessageBox(\"Check\", \"SQLCode = \" + String( SQLCA.SQLCode ) + \' \' + ls_err_text )
END IF

例2 (NG)
ls_prod = THIS.GetItemString(row, \'pc\')
ls_table = \'SCHEMA.TABLE\'
ls_sqlStatement = \"SELECT KANJI_NAME FROM ? WHERE PC = ?\"
DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA; 
PREPARE SQLSA FROM :ls_sqlStatement;
OPEN DYNAMIC my_cursor USING :ls_table, :ls_prod;
FETCH 以下同じ

SQLErrTextは、「ストアドプロシージャが実行されていないか、結果が得られませんでした。」です。

手動発行したSQL文は、次のとおりです。
SELECT KANJI_NAME FROM SCHEMA.TABLE WHERE PC = \'***\';

いかがなものでしょうか?
やはり、FROM 句で ? は使えないでしょうか?

よろしくお願いします。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows98
DBMS DBMSクライアントソフトウェアなし
Browser (記載なし)

Server SoftWare

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

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