- 締切済み
動的にパラメータを渡す方法
検索のWEBサイトを作成しています。 ユーザの入力値を分解し、ストアドプロシージャに渡してDB検索をしたいのですが、パラメータ数を動的にするには、どうしたらいいのでしょうか。 どなたかアドバイスください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- temtecomai2
- ベストアンサー率61% (656/1071)
回答No.1
Web サーバ側は何で作っているのでしょうか? 例えばストアドプロシージャ側で CREATE PROCEDURE SearchContents (@sqlWhere nvarchar(255)='') AS DECLARE @query nvarchar(500) SET @query = 'SELECT * FROM hoge ' + @sqlWhere EXEC sp_executesql @query GO ってのを作っておいて、 Web サーバ側の言語で、 検索文字列を分解する。 WHERE に続く部分の SQL 文字列を生成する って処理を行って、ストアドプロシージャ「SearchContents」に引数として、生成した WHERE~ の部分を与えるってのはどうでしょうか? もちろん、不正な文字列が入力されていないかとか、文字列は長すぎないかとか、SQL インジェクションになりそうなものは排除するようにする必要があります。
補足
回答ありがとうございます。 サーバ側は ASP(VBScript)です。 検索条件の文字列作成処理がかなり長くなってしまい、VBScript での文字列連結の処理を何とか減らせないか、と思って質問した次第です。 なるほど、ちょっと試してみます。 ありがとうございました。