カンマ、ダブルクォートを文字列で使用するには


和樹  2004-03-23 05:46:39  No: 7887

クエリー内のSQL文をDelphiで書く場合に、
文字列内のダブルクォートとカンマをチェックする処理を作成しようとしたところ
ダブルクォート(”)と、カンマ(,)を使用したらうまくいきませんでした。
詳細は、
Qu1.SQL.ADD('       INSTR(P_SONAME, '""', 1) AS DATA5, ');
Qu1.SQL.ADD('       INSTR(P_SONAME, ',',  1) AS DATA6, ');
上記で、コンパイルしてみたところ、
ダブルクォートのほうが、「不正な文字があります」といわれ、
カンマのほうは、「実パラメータが多すぎます」と出ました。

これの解決方法はどうすればよろしいでしょうか、教えてください。


にしの  2004-03-23 06:08:27  No: 7888

ダブルコートは1つです。
逆に、シングルコートを使う場合は2つ続けます。

VBでやっていたのでしょうか。
VBで、"ab""c"とすると、ab"cのことになりますよね。
これは、"が文字列の最後を表すためです。
同じように、Delphiでは'がそれにあたります。
一概に、全ての言語で同じようにリプレースできるとは言えませんが、Delphiの場合は、'ab''c'が、ab'cを表します。

カンマの部分では'が使われているので、コンパイラが文字列の最後と間違ってしまいます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加