У меня есть соединение OLEDB, настроенное в менеджерах соединений, и я хочу использовать его в SCRIPT. Сценарий должен вызывать сохраненный процесс, а затем создавать строки буфера. Я добавил подключение к соединениям, доступным для скрипта, и это мой код.Использование существующего соединения в компоненте скрипта (SSIS)
Boolean fireagain = true;
SqlConnection conn = new SqlConnection();
conn = (SqlConnection)(Connections.Connection
.AcquireConnection(null) as SqlConnection);
SqlCommand cmd = new SqlCommand();
conn.Open();
ComponentMetaData.FireInformation(
0, "Script", "Connection Open", string.Empty, 0, ref fireagain);
cmd.Connection = conn;
cmd.CommandText = "up_FullTextParser_select" ;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("Phrase", DbType.String).Value = Row.Keywords;
cmd.Parameters.AddWithValue("SpecialTerm", DbType.String).Value = "Exact match";
cmd.Parameters.AddWithValue("StopListId", DbType.Int32).Value = 0;
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
while (rdr.Read())
{
TermsBuffer.AddRow();
TermsBuffer.Term = rdr[0].ToString();
}
conn.Close();
Во всяком случае, похоже, что это не так, как на AcquireConnection. Я это неправильно делаю? Должен ли я использовать другой способ использования соединений, определенных вне сценария ?.
Пожалуйста, разместите все ошибки, которые вы получаете. –
'conn = (SqlConnection) (Connections.Connection .AcquireConnection (null) как SqlConnection);' - Это избыточно. С помощью 'as' вы преобразуете возвращенный объект в' SqlConnection'. Затем вы передаете этот 'SqlConnection' в тип' SqlConnection', который он по определению уже есть, если он не равен нулю, и в этом случае он не может быть запущен в любом случае. – tradeJmark