我一直在使用Insight.Database大約一年來調用存儲過程,但我只是遇到了一種情況,即存儲過程有一個Insight默認無法處理的默認可空參數。在Insight.Database中處理可空參數的權利/最佳方式是什麼?
簡而言之,參數定義爲paramName nvarchar(10) = ''
。調用這個proc的代碼是老式的SqlCommand/SqlParam代碼,根本沒有設置參數。我用.NET對象替換此:
Class MyObject
Public Property paramName As String
....
End Class
假設你創建這個類型的對象,不要設置paramName
並把它傳遞給PROC。我會預期proc會使用默認值。但是反過來說,Insight會向proc發送NULL值,這與發送任何內容不同,proc會看到指定的參數,因此不會使用默認值,並且此特定proc實際上處理的是NULL 不同於從默認的方式,這打破了應用程序。
我會爭辯說,錯誤是在proc中,但我仍然需要一種方法來控制可空參數的行爲,所以我可以調用這種我不能修改的特效。
這一個工作不打開的問題嗎? CREATE PROCEDURE dbo。abc ( \t @ Parm1 VARCHAR(50)= NULL ) – 2014-11-06 14:23:53
我確定它可以工作,但這不是這個過程的定義。我需要按照原樣調用proc,並且無法更改它以使我更方便地調用。 – 2014-11-06 14:30:40
好吧對不起,我要刪除我的回答 – 2014-11-06 14:39:23