我想將可變數量的參數傳遞給MySql存儲過程。我已經通過使用xml或解析分隔列表在Sql Server中完成此操作。我猜我可以做MySql中的列表解析,但有其他選擇嗎?將可變數量的參數傳遞給存儲過程
我想要做的是我有一個配置,存儲過濾器的數據返回。該過濾器基於與需要返回的字段相對應的類別(基於公司的可變數字)。我非常想寫一個帶有這些配置的類別ID的「IN」子句,但我正在通過Stored Proc做所有事情。
我想將可變數量的參數傳遞給MySql存儲過程。我已經通過使用xml或解析分隔列表在Sql Server中完成此操作。我猜我可以做MySql中的列表解析,但有其他選擇嗎?將可變數量的參數傳遞給存儲過程
我想要做的是我有一個配置,存儲過濾器的數據返回。該過濾器基於與需要返回的字段相對應的類別(基於公司的可變數字)。我非常想寫一個帶有這些配置的類別ID的「IN」子句,但我正在通過Stored Proc做所有事情。
如果您要從C#到MySql,有很多代碼選項。它們基本上採用創建一個傳遞所有參數的函數的形式。然後,您可以通過一種機制來包裝它,以便在特定情況下只指定您關心的參數,爲其餘部分設置默認值。
您可以使用對象初始值設定項,匿名類,列表,可變參數函數以及其他一些我沒有想到的方法來做到這一點。
如果這符合您的設計目標,請選擇一種機制並詢問更多相關信息。
你可以創建你的存儲過程的「存根」的輸入參數,例如,和
CREATE PROCEDURE [dbo].[ThisTakesMultipleOptionalParameters
@SerialNumber int = null,
@ProductName nvarchar(100) = null
AS
然後你就可以用指定的一個或多個參數,或者不EXEC它。
EXEC dbo.ThisTakesMultipleOptionalParameters @ProductName='Doritos'
EXEC dbo.ThisTakesMultipleOptionalParameters @SerialNumber=666
EXEC dbo.ThisTakesMultipleOptionalParameters @SerialNumber=696, @ProductName='Juicy Bits'
一般而言,我會建議不要這樣做;你能告訴我們爲什麼以及如何做這件事的例子,所以我們可以給出更好的建議嗎? – 2009-06-08 18:46:28