2015-03-31 55 views
0

我正在使用SSIS 2012中的FOR LOOP容器。我希望此循環能夠執行,除非我擁有的布爾變量的值爲FALSE。 但是,當我嘗試設置For循環容器的EvalExpression屬性時出現錯誤: 無法將'System.Boolean'轉換爲'System.String'。 我設置的表達:FOR SSIS 2012中的循環容器

@[User::myVar] = FALSE 

如何設置的表達,因此如果該值爲false然後我打出來的for循環?

+0

是什麼數據類型'@ [用戶:: myVar的]' – billinkc 2015-03-31 16:46:20

回答

2

您有一到兩個問題。

首先是myVar的必須是布爾類型

第二個也是更陰險的是,你正在分配的假到您的變量的值=。你想要做的是test你的變量是否爲False。比較運算符是==

enter image description here

+0

它是布爾類型,我需要使用==。 – user3801452 2015-03-31 17:06:11

+0

我也遇到了一個巨大的痛苦,試圖將EvalExpression設置爲一個變量,因爲這是我會直觀地期望它接受。事實證明,它看起來像是初始值,不會重新評估,如果你只是放置一個值而不是操作。 意思是說,無論@ [User :: myVar]被默認爲,這就是for循環的無限期。我會假設它會重新評估它是EvalExpression中的一個運算符 - 即使您嘗試使用表達式 – Sam 2017-06-13 16:28:02