2
我在我的包中定義了一個執行sql任務,它將執行存儲過程。當存儲過程執行時,它將返回用戶憑證。我必須將憑證存儲在一個變量中,然後在新的腳本任務中使用這些憑證。使用執行SQL任務對象將值存儲在變量中
以下是我到目前爲止所嘗試的。
STEP 1 - 我已經創建SQL任務
在常規選項卡中設置以下屬性:
Resultset: Single row
connectionType: OLE DB
Connection:SourceDestination
SQLSourceType:DirectInput
SQLStatement: Execute dbo.GetLoginInfo1
ByPassPrepare = False
第2步 - 參數映射選項卡
Variable Name = User::DatabaseUserName
Direction = Output
Data Type = NVarchar
Parameter Name = @UserId
Parameter Size = 50
第3步 - 結果集選項卡
Result Name = 0
Variable Name = User::DatabaseUserName
當我執行我得到了以下錯誤的任務。
[Execute SQL Task] Error: Executing the query "EXECUTE [dbo].[GetUserLoginInfo1]"
failed with the following error: "Value does not fall within the expected range."
Possible failure reasons: Problems with the query, "ResultSet" property not set
correctly, parameters not set correctly, or connection not established correctly
當我調試我看到以下信息: 打破前執行:
User::DatabaseUserName = {Hi}
打破後執行:(錯誤發生,但價值得到chanage)
User::DatabaseUserName = {User1}
對不起,只是忘了提及變量的創建。我已經創建了一個如下所示的變量。
Name = DatabaseUserName
Scope = Package1
Datatype = String
Value = Hi
下面提到的是我用過的存儲過程。
ALTER PROCEDURE [dbo].[GetUserLoginInfo1]
AS
BEGIN
SELECT userid AS userid
FROM login_credentials
WHERE servername= 'server1'
END
我曾嘗試和閱讀很多很多網站,但我依然面臨着problem.This是我第二天就可以了,並有明天早上之前解決它,所以任何幫助將是非常讚賞。
非常感謝viktor。我們非常感謝您的幫助。 – 2012-03-01 14:15:08