クエリー内のSQL文をDelphiで書く場合に、
文字列内のダブルクォートとカンマをチェックする処理を作成しようとしたところ
ダブルクォート(”)と、カンマ(,)を使用したらうまくいきませんでした。
詳細は、
Qu1.SQL.ADD(' INSTR(P_SONAME, '""', 1) AS DATA5, ');
Qu1.SQL.ADD(' INSTR(P_SONAME, ',', 1) AS DATA6, ');
上記で、コンパイルしてみたところ、
ダブルクォートのほうが、「不正な文字があります」といわれ、
カンマのほうは、「実パラメータが多すぎます」と出ました。
これの解決方法はどうすればよろしいでしょうか、教えてください。
ダブルコートは1つです。
逆に、シングルコートを使う場合は2つ続けます。
VBでやっていたのでしょうか。
VBで、"ab""c"とすると、ab"cのことになりますよね。
これは、"が文字列の最後を表すためです。
同じように、Delphiでは'がそれにあたります。
一概に、全ての言語で同じようにリプレースできるとは言えませんが、Delphiの場合は、'ab''c'が、ab'cを表します。
カンマの部分では'が使われているので、コンパイラが文字列の最後と間違ってしまいます。
ツイート | ![]() |