Я работаю с пакетами SSIS, и в настоящее время я застрял в этой проблеме. Я разрабатываю с использованием строки соединения, которую я написал в переменной пакета, и это значение переходит к соединительному манифесту через выражение. Что-то вроде этого: @ [Пользователь: Подключение]Ошибка конфигурации XML-файла в пакете SSIS
Он отлично работал для отладки. Поскольку мне нужно было вызвать некоторые хранимые процедуры внутри задач Script и компонентов Script, я бы просто вызвал переменную Package как строковое соединение с базой данных. Поскольку я новичок в мире ETL (менее месяца), и я делал некоторые пакеты (фактически на самом деле), я недавно прочитал, что должен сохранить мою ConnectionString в XML-файле и хранить такие вещи, как пользователь, пароль там (так как у производственного сервера, вероятно, будет другая учетная запись пользователя, как упоминалось here и 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>
Я добавил пароль в конце концов, так же, как ссылки в начале предложил, и пытался получить connetionString, как это в задаче Сценарий:
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());
}
}
, но он не работает в con.Open() поэтому, когда я проверяю ConnectionString, его же, но без Пароль значение, которое я написал. Его вроде он не читает его из файла конфигурации xml. Когда я проверил Tab сообщение в окне Список ошибок, я вижу это:
<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>
Im из идеи о том, что делать, любая помощь будет оценена
Im с помощью Visual Studio 2008 и SQL Server 2008 .
Вы связали свой пакет с конфигурационным файлом следующим образом: https://technet.microsoft.com/en-us/library/ms140213(v=sql.105).aspx –
@ Nick.McDermaid Я сделал, и связал только свойство Connection String, от менеджеров подключений – Mokz