SSISパッケージを使用していましたが、現在この問題が発生しています。私はパッケージ変数で書いた接続文字列を使って開発しており、その値は式を通してConnection Mannagerに送られます。このようなもの:@ [User :: Connection]SSISパッケージのXML構成ファイルのエラー
デバッグにはうってつけでした。スクリプトタスクとスクリプトコンポーネントの中でいくつかのストアドプロシージャを呼び出す必要があるので、データベースへの文字列接続としてPackage変数を呼び出すだけです。私はETLの世界(1ヵ月未満)に慣れていて、いくつかのパッケージ(実際には6)をやっているので、最近私はConnectionStringをxmlファイルに保存し、ユーザー、パスワードはここに記載されている通りです(プロダクションサーバーはおそらく異なるユーザーアカウントを持っているので、とhere)
今、私はそれを言うことを試みましたが、それは私のためには機能しません。だから私はSSISの新しいパッケージを作成してテストし、スクリプトタスクとそれを呼び出す単純なストアドプロシージャを含んでいます。パッケージ構成は、接続マネージャからのみConnectionStringプロパティが含まれており、それがこのようなものになります。私は開始時にリンクが提案し、取得しようと同じように、最後にパスワードを追加
<?xml version="1.0" ?>
- <DTSConfiguration>
- <DTSConfigurationHeading>
<DTSConfigurationFileInfo GeneratedBy="JohnSmith" GeneratedFromPackageName="Package" GeneratedFromPackageID="{2C421533-C76C-4583-841C-367C50DB61C1}" GeneratedDate="17/01/2017 --:--:-- p.m." />
</DTSConfigurationHeading>
- <Configuration ConfiguredType="Property" Path="\Package.Connections[OLEDB_CONNECTION].Properties[ConnectionString]" ValueType="String">
<ConfiguredValue>Data Source=ServerName;User ID=UserName;Initial Catalog=DatabaseName;Provider=SQLNCLI10.1;Auto Translate=False;Application Name=SSIS-Package-{C24F1A69-A9A3-40D4-8A1E-7EA61E0EB57D}ServerName.DatabaseName.UserName;Use Encryption for Data=False;Password=abc123;</ConfiguredValue>
</Configuration>
</DTSConfiguration>
を
String cn = Dts.Connections["OLEDB_CONNECTION"].ConnectionString;
し、このように、ストアドプロシージャでそれを呼び出す:
using (OleDbConnection con = new OleDbConnection(cn))
{
using (OleDbCommand cmd = new OleDbCommand("dbo.usp_sgn_conseguirNumDoc", con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@var_CODDOC", OleDbType.VarChar, 3).Value = "001";
cmd.Parameters.Add("@var_NUMDOC", OleDbType.BigInt).Direction = ParameterDirection.Output;
con.Open();
cmd.ExecuteNonQuery();
result = Int64.Parse(cmd.Parameters["@var_NUMDOC"].Value.ToString());
}
}
スクリプトタスクでこのようconnetionString 363010
しかし、con.Open()で失敗します。私はConnectionStringをチェックすると、同じですが、のパスワードの値は書きません。そのようなそれはxmlの設定ファイルからそれを読んでいない。私は、エラー一覧ウィンドウにメッセージタブをチェックすると、私はこれを参照してください。何をすべきかのアイデアのうち
<DTS:ConnectionManager>
<DTS:Property DTS:Name="DelayValidation">0</DTS:Property>
<DTS:Property DTS:Name="ObjectName">OLEDB_CONNECTION</DTS:Property>
<DTS:Property DTS:Name="DTSID">{C24F1A69-A9A3-40D4-8A1E-7EA61E0EB57D}</DTS:Property>
<DTS:Property DTS:Name="Description"></DTS:Property>
<DTS:Property DTS:Name="CreationName">OLEDB</DTS:Property><DTS:ObjectData><DTS:ConnectionManager>
<DTS:Property DTS:Name="Retain">0</DTS:Property><DTS:Password DTS:Name="Password" Sensitive="1"></DTS:Password>
<DTS:Property DTS:Name="ConnectionString">Data Source=ServerName;User ID=UserName;Initial Catalog=DatabaseName;Provider=SQLNCLI10.1;Auto Translate=False;Application Name=SSIS-Package-{C24F1A69-A9A3-40D4-8A1E-7EA61E0EB57D}ServerName.DatabaseName.UserName;Use Encryption for Data=False;</DTS:Property></DTS:ConnectionManager></DTS:ObjectData></DTS:ConnectionManager>
イム、任意のヘルプは、Visual Studio 2008とSQL Server 2008を使用して
イムを理解されるであろう
パッケージを次のように設定ファイルにリンクしましたか?https://technet.microsoft.com/en-us/library/ms140213(v=sql.105).aspx –
@ Nick.McDermaid Connection Managerから接続文字列プロパティのみをリンクしました – Mokz