PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
5028 99/02/09 11:50:30 RE(2):PB6: 動的SQLについて教えて下さい。 By umeda
5026 99/02/09 10:55:27 RE(1):PB6: 動的SQLについて教えて下さい。 By Taka
5024 99/02/09 10:16:31 PB6: 動的SQLについて教えて下さい。 By umeda

カテゴリ:スクリプトの記述
日付:1999年02月09日 10:55 発信者:Taka
題名:RE(1):PB6: 動的SQLについて教えて下さい。

umedaさん、おはようございます。

>DECLARE cur1 DYNAMIC CURSOR FOR SQLSA;
>PREPARE SQLSA FROM \"SELECT sorder FROM cdtbl WHERE sorder  >=  :str_sorder \";
>OPEN DYNAMIC cur1 ;

>上記のPREPAREでのWHEREで、str_sorderの内容は画面から入力された値(変動します)が入ります。
>これだとエラーになってしまいます。WHERE >= \'1111\'と直接書くとOKなのです。
>値が変動するときの記述方法を教えて下さい。よろしくお願い致します。

手っ取り早いのは、
string ls_sql
ls_sql = \"SELECT sorder FROM cdtbl WHERE sorder  >= \'\" + str_sorder + \"\'\"
PREPARE SQLSA FROM :ls_sql ;
です。

ちょっとカッコイイ方法として、
DECLARE cur1 DYNAMIC CURSOR FOR SQLSA;
PREPARE SQLSA FROM \"SELECT sorder FROM cdtbl WHERE sorder >= ?\";
OPEN DYNAMIC cur1 USING :str_sorder;
というのもあります。「?」はいくつでも可で、OPEN文のUSINGに対応させて使います。

では。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS Oracle SQL*Net 8
Browser (記載なし)

Server SoftWare

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

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