2009-06-08 23 views
1

MySqlストアドプロシージャに可変量のパラメータを渡そうとしています。私はxmlを使用して、または区切られたリストを解析することによって、SQL Serverでこれを行っています。私はMySqlでリストの解析を行うことができると推測していますが、他にもオプションがありますか?私がやろうとしています何可変数のパラメータをストアドプロシージャに渡す

は私が返すようにデータのフィルタを格納した構成を持っています。フィルタは、返される必要があるフィールドに対応するカテゴリに基づいています(会社に基づく可変数)。私はかなりこれらの設定されたカテゴリIDで "IN"句を書いてみたいが、Stored Proc経由ですべてをやっている。あなたはMySQLへのC#からつもりなら

+0

一般に、私はそれをしないことをお勧めします。なぜ、どのようにこれをやっているのか、私たちに例を挙げることができますか? –

+0

に問題の詳細が追加されました – CSharpAtl

答えて

1

は、コードの多くのオプションがあります。基本的には、すべてのパラメータを渡す関数を作成するという形を取ります。次に、特定の状況で気になるパラメータだけを指定し、残りのパラメータについてはデフォルトを設定することができる仕組みでこれをラップします。

あなたは、オブジェクト初期化子、匿名クラス、リスト、可変引数関数、と私は考えていなかった可能性が高いいくつかの他の事でこれを行うことができます。

これが設計目標を満たしている場合は、1つのメカニズムを選択して詳細を尋ねます。

0

あなたは、あなたが一つ以上のパラメータ指定、またはないでそれをEXECできる「スタブ」の入力例えば、あなたのストアドプロシージャのパラメータ、および

CREATE PROCEDURE [dbo].[ThisTakesMultipleOptionalParameters 

@SerialNumber int = null, 
@ProductName nvarchar(100) = null 

AS 

を作成することができます。

EXEC dbo.ThisTakesMultipleOptionalParameters @ProductName='Doritos' 

EXEC dbo.ThisTakesMultipleOptionalParameters @SerialNumber=666 

EXEC dbo.ThisTakesMultipleOptionalParameters @SerialNumber=696, @ProductName='Juicy Bits' 
関連する問題