PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
13490 | 00/10/06 15:10:20 | RE(4):PB6: アポストロフィの扱い(解決) By t.y |
13488 | 00/10/06 14:02:01 | RE(3):PB6: アポストロフィの扱い -> Find関数の場合 By Taka |
13485 | 00/10/06 10:23:58 | RE(2):PB6: アポストロフィの扱い -> 動的SQLはいい感ぢなのですが By t.y |
13483 | 00/10/06 01:03:51 | RE(1):PB6: アポストロフィの扱い -> 動的SQL・書式2 By Taka |
13465 | 00/10/05 11:08:19 | PB6: アポストロフィの扱い By t.y |
カテゴリ:スクリプトの記述
日付:2000年10月06日 10:23 発信者:t.y
題名:RE(2):PB6: アポストロフィの扱い -> 動的SQLはいい感ぢなのですが
Takaさん、こんにちは。
>これって、静的SQLで
> update TBL set A1 = :str where B1 = 100;
>と直接書けるんじゃない?...と言おうと思ったけど、
>たぶん動的にテーブル名やWHERE句などが変わるんですよね。
そうです。説明不足でした。m(__)m
>この場合は、動的SQLの書式2を使うと良いでしょう。
>:
>PREPARE SQLSA FROM \"update TBL set A1 = ? where B1 = ?\";
>EXECUTE SQLSA USING :ls_a1, :li_b1;
>
>文字列内の ? が、USINGで与える変数でバインドされます。
>(文字列そのものが置換される訳ではないという点が違います)
>? が複数ある場合、先頭から出てきた順に合わせてUSINGリストに記述します。
試してみます。ありがとうございました。
この方法でテーブル更新はうまく行きそうな気はしますが、
実はFind関数で列の検索をかけたりもしています。
Find関数の検索条件を作ったときにやっぱりアポストロフィの問題が
でてしまいます。
結局文字列編集のたぐいでは常に問題になるところだと思うのですが
(PBに限らないと思う)皆さんどうしているのでしょうか...
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS INFORMIX Net 7
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS INFORMIX-OnLine 7
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.