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月05日 11:08 発信者:t.y
題名:PB6: アポストロフィの扱い

いつも参考にさせていただいています。

質問があります。
現在、あるテーブルを動的SQLのスクリプトにて更新する処理があります。
ある列に例えばsle_name.Textのような画面入力項目をセットするとします。
この時、sle_name.Textの中に\'(アポストロフィ)を含む文字列が存在した
場合、「\'」を「\'\'」に変換しないとSQL文字列が不正になりエラーとなってしまいます。
例) 
string sql,str

sle_name.Text = \"AA\'BB\"  //と入っているとします。
str = sle_name.Text 
sql = \"update TBL set A1 = \'\" + str + \"\' where B1 = 100 \"
動的SQL実行  ->文字列が不正でエラー(途中で切れてる為)
処理

そこで質問なのですが、
皆さんはこのような場合はどう対応されているのでしょうか?
私が思い付く方法としては
1.テーブルの更新はなにがなんでもDWを使用する(動的SQLは使用しない)
2.アポストロフィは入力不可になるように画面制御
  (別の文字に変換、またはエラー)
3.動的SQL使用時はアポストロフィを「\'\'」に変換してテーブル更新
等が考えられるのですが、
動的SQLを使用したPGはかなりある為、いまさら方法1は使えません。
と言って方法3も修正が大変、修正2も対して変わらないので困ってます。
一般的(なにを一般的と言うかという話はありますが)にはこういった
文字はどう扱うのが良いのでしょう?
どなたか御教授下さい。よろしくお願い致します。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS INFORMIX Net 7
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS INFORMIX-OnLine 7
WebServer (記載なし)

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