2010-12-20 12 views
0

SQL文のプロンプトフィールドでアポストロフィを処理しようとしています。以下の例:WHERE節のプロンプトでMS SQL apotrophe

WHERE [email protected] 

問題は、アドレスが 'したがって、WoodはSQLを持つものを除き、他のすべてのアドレスに対してSQLを動作させます。

私はreplace(@promptfromuser,"'","''")を使用しようとしましたが、エラーが発生し続けています。 propertyfieldintableはテキストフィールドなので、プロンプトからのテキスト入力が必要であると仮定しています。

クエリはデータベース自体ではなく、レポートツール内にあり、機能を使用できないため、わかりやすい提案をいただきたいと思います。

+0

アポストロフィがREPLACE使用せずにパラメータで受け入れている。何であるの文

replace (@promptfromuser,'''', '''''') 

を置き換える次のことを試してみてくださいあなたの正確なerrormessage? – Alex

+0

あなたは本当にparamaterised SQLを使用する必要があります...このstackoverflow質問の読んでいる:http://stackoverflow.com/questions/3216233/what-is-passing-parameters-to-sql-and-なぜ私はそれを必要とするのでしょうか?3216331 –

答えて

2

パラメータを使用する必要があります。

+2

なぜか説明すると... OPは明らかにSQL injeについて聞いていませんその他 – gbn

0

永遠にdatabasecontextに「使用して忘れてください。マイクロソフトは、特殊文字を含む識別子を示すために[]構文を持っています。