INSERT INTO aaa ( KEY1 , KEY2 , COMMENT )
VALUES ( '001' , '00002' , ' ":test ' )
上記のSQLを実行すると「:testパラメータが設定してない」的な
エラーになるのですが、ダブルクォート以降の:に反応してパラメータ扱い
している様です「 ":test 」自体を文字列として扱いたいのです
(※ParamCheck=Falseすれば問題ないのですがTrueでなければ困るのです)
ちなみにSQLは実行できます(SQL+等で)
DB書いてないから、適当に答えるよ
' ":test '
↓
CHR(32) || CHR(34) || CHR(58) || 'test '
回答、ありがとうございます
試してみましたが、結果は同じでした
CHR(32)、CHR(34)、CHR(58)、は変換されたSQLができていましたが
ダブルクォートとコロンの組み合わせのSQLだとエラーのようです
TQueryコンポーネントにSQLを設定します。
Query1とした場合
SQL分を設定
INSERT INTO aaa ( KEY1 , KEY2 , COMMENT )
VALUES ( '001' , '00002' , :test)
実行時に:testに値を設定
Query1.ParamByName('test').AsString := '":test';
SQL実行
Query1.ExecSql;
これで登録されるはずです。
回答、ありがとうございます
すいません、自分の質問の仕方が悪かったです
パラメータtestを使用したいのではなく
COMMENTというChraの項目に「 ": 」という文字列を登録したいのです
GTRさん、
ごめんなさい、できました!
ありがとうございます
いってるいみがさいしょ理解できませんでした、すいません
解決したようだけど、CHR は、Delphiの関数じゃなくて、DB・・・というかOracleの関数な。
そういう意味で「CHR(32) + CHR(34)」ではなく「CHR(32) || CHR(34)」のように書いたんだな。
ツイート | ![]() |