Compartilhar via


Conectando a fontes de dados na tarefa Script

Aplica-se a: Tempo de execução de integração do SSIS do SQL Server no Azure Data Factory

Gerenciadores de conexões fornecem acesso a fontes de dados que foram configuradas no pacote. Para obter mais informações, confira Conexões do SSIS (Integration Services).

A tarefa Script pode acessar esses gerenciadores de conexões pela propriedade Connections do objeto Dts. Cada gerenciador de conexões na coleção Connections armazena informações sobre como conectar-se à fonte de dados subjacente.

Quando você chama o método AcquireConnection de um gerenciador de conexões, este se conecta à fonte de dados, se já não estiver conectado, e retorna a conexão apropriada ou as informações da conexão para você utilizar no código da tarefa Script.

Observação

Você deve saber o tipo de conexão retornado pelo gerenciador de conexões antes de chamar AcquireConnection. Já que a tarefa Script tem Option Strict habilitada, você deve converter a conexão, que é retornada como tipo Object, para o tipo de conexão adequado antes de poder usá-la.

É possível usar o método Contains da coleção Connections retornada pela propriedade Connections para procurar uma conexão existente antes de usá-la no seu código.

Importante

Você não pode chamar o método AcquireConnection de gerenciadores de conexões que retornam objetos não gerenciados, tais como o gerenciador de conexões OLE DB e o Excel, no código gerenciado de uma tarefa Script. Entretanto, você pode ler a propriedade ConnectionString desses gerenciadores de conexões e conectar-se à fonte de dados diretamente em seu código por meio da cadeia de conexão com uma OledbConnection do namespace System.Data.OleDb.

Se você deve chamar o método AcquireConnection de um gerenciador de conexões que retorna um objeto não gerenciado, use um gerenciador de conexões ADO.NET. Quando você configura o gerenciador de conexões ADO.NET para usar um provedor OLE DB, ele se conecta usando o Provedor de Dados .NET Framework para OLE DB. Nesse caso, o método AcquireConnection retorna um System.Data.OleDb.OleDbConnection em vez de um objeto não gerenciado. Para configurar um gerenciador de conexões ADO.NET para usar com uma fonte de dados Excel, selecione o OLE DB Provider for Microsoft Jet, especifique um arquivo em Excel e insira Excel 8.0 (para Excel 97 e mais recente) como valor de Propriedades Estendidas na página Todas da caixa de diálogo Gerenciador de Conexões.

Exemplo de conexões

O exemplo seguinte demonstra como acessar gerenciadores de conexões da tarefa Script. A amostra supõe que você criou e configurou um gerenciador de conexões ADO.NET chamado denominado Testar Conexão ADO.NET e um gerenciador de conexões de arquivo simples denominado Testar Conexão de Arquivo Simples. Observe que o gerenciador de conexões ADO.NET retorna um objeto SqlConnection que você pode usar imediatamente para se conectar à fonte de dados. Por outro lado, o gerenciador de conexões de arquivo simples retorna só uma cadeia de caracteres que contém o caminho e o nome do arquivo. Você deve usar métodos do namespace System.IO para abrir e funcionar com o arquivo simples.

    Public Sub Main()

        Dim myADONETConnection As SqlClient.SqlConnection =
            DirectCast(Dts.Connections("Test ADO.NET Connection").AcquireConnection(Dts.Transaction),
                SqlClient.SqlConnection)
        MsgBox(myADONETConnection.ConnectionString,
            MsgBoxStyle.Information, "ADO.NET Connection")

        Dim myFlatFileConnection As String =
            DirectCast(Dts.Connections("Test Flat File Connection").AcquireConnection(Dts.Transaction),
                String)
        MsgBox(myFlatFileConnection, MsgBoxStyle.Information, "Flat File Connection")

        Dts.TaskResult = ScriptResults.Success

    End Sub
		public void Main()
		{
            SqlConnection myADONETConnection = 
                Dts.Connections["Test ADO.NET Connection"].AcquireConnection(Dts.Transaction)
                as SqlConnection;
            MessageBox.Show(myADONETConnection.ConnectionString, "ADO.NET Connection");

            string myFlatFileConnection = 
                Dts.Connections["Test Flat File Connection"].AcquireConnection(Dts.Transaction) 
                as string;
            MessageBox.Show(myFlatFileConnection, "Flat File Connection");

            Dts.TaskResult = (int)ScriptResults.Success;
		}

Consulte Também

Conexões do SSIS (Integration Services)
Criar Gerenciadores de Conexões