SQL文でダブルクォートを文字列として扱うには?

解決


たすけて〜  2007-09-27 16:50:43  No: 27877  IP: 192.*.*.*

INSERT INTO aaa ( KEY1 , KEY2 , COMMENT ) 
VALUES ( '001' , '00002' , ' ":test ' )

上記のSQLを実行すると「:testパラメータが設定してない」的な
エラーになるのですが、ダブルクォート以降の:に反応してパラメータ扱い
している様です「 ":test 」自体を文字列として扱いたいのです
(※ParamCheck=Falseすれば問題ないのですがTrueでなければ困るのです)
ちなみにSQLは実行できます(SQL+等で)

編集 削除
あいうえお  2007-09-27 18:16:39  No: 27878  IP: 192.*.*.*

DB書いてないから、適当に答えるよ

' ":test ' 

CHR(32) || CHR(34) || CHR(58) || 'test '

編集 削除
たすけて〜  2007-09-27 18:57:20  No: 27879  IP: 192.*.*.*

回答、ありがとうございます

試してみましたが、結果は同じでした
CHR(32)、CHR(34)、CHR(58)、は変換されたSQLができていましたが
ダブルクォートとコロンの組み合わせのSQLだとエラーのようです

編集 削除
GTR  2007-09-27 20:20:07  No: 27880  IP: 192.*.*.*

TQueryコンポーネントにSQLを設定します。
Query1とした場合
SQL分を設定
INSERT INTO aaa ( KEY1 , KEY2 , COMMENT ) 
VALUES ( '001' , '00002' , :test)

実行時に:testに値を設定
Query1.ParamByName('test').AsString := '":test';
SQL実行
Query1.ExecSql;
これで登録されるはずです。

編集 削除
たすけて〜  2007-09-27 20:27:36  No: 27881  IP: 192.*.*.*

回答、ありがとうございます

すいません、自分の質問の仕方が悪かったです
パラメータtestを使用したいのではなく
COMMENTというChraの項目に「 ": 」という文字列を登録したいのです

編集 削除
たすけて〜  2007-09-27 20:51:33  No: 27882  IP: 192.*.*.*

GTRさん、
ごめんなさい、できました!
ありがとうございます

いってるいみがさいしょ理解できませんでした、すいません

編集 削除
あいうえお  2007-09-28 08:56:31  No: 27883  IP: 192.*.*.*

解決したようだけど、CHR は、Delphiの関数じゃなくて、DB・・・というかOracleの関数な。

そういう意味で「CHR(32) + CHR(34)」ではなく「CHR(32) || CHR(34)」のように書いたんだな。

編集 削除