ストアドプロシージャを実行する私のパッケージにexecute sqlタスクが定義されています。ストアドプロシージャが実行されると、ユーザーの資格情報が返されます。変数に資格情報を格納し、これらの資格情報を新しいスクリプト・タスクで使用する必要があります。Execute SQLタスクオブジェクトを使用して変数に値を格納する
以下は私が今まで試したことです。
STEP 1 - 私が作成したSQLタスク[全般]タブで
は、次のプロパティを設定します。
Resultset: Single row
connectionType: OLE DB
Connection:SourceDestination
SQLSourceType:DirectInput
SQLStatement: Execute dbo.GetLoginInfo1
ByPassPrepare = False
STEP 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
私は、以下の情報を見てみましたデバッグ:事前に実行ON ブレイク:
User::DatabaseUserName = {Hi}
ポストONブレーク実行します(エラーが発生したが、値がchanageを取得します)
User::DatabaseUserName = {User1}
申し訳ありません、変数の作成について言及することを忘れてしまいました。私は以下のように1つの変数を作成しています。
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。あなたの助けが大いに評価されました。 –