Encontrou isto em um borne em linha:
Aprovação, eu estou afixando minha solução aqui porque este é o primeiro fórum que eu olhei quando eu comecei olhar.
Enquanto despeja você não pode reúso os recordsets enchidos em variáveis do objeto de SSIS através das tarefas múltiplas.
Há uma solução embora:
Este código com toma seu recordset e introdu-lo em um ADO.Net DataTable. Lá de você pode fazer o que você quer com ele.
DataTable descolamento = DataTable novo ();
Adaptador de OleDbDataAdapter = OleDbDataAdapter novo ();
adaptador. Suficiência (descolamento, Dts.Variables [“ExcelSet”].
Valor);
Por qualquer motivo isto esvazia sua variável do objeto. Que???
Agora o que você tem que fazer é tomar os dados em seu DataTable e empurrá-los de novo em sua variável do objeto. MAS, as outras tarefas (e o código acima) estão esperando um ADOBD.Recordset. Tão primeiramente você tem que converter seu datatable a um ADODB.Recordset. O código a fazer que está no artigo lig abaixo. Apenas cópia e pasta a seu código do certificado (nota: codificar está em C#….pode ter que converter a VB.Net).
http://www.codeproject.com/KB/database/DataTableToRecordset.aspxNão esquecer ajustar uma referência aos objetos ativos de Microsoft X em seu certificado (objetos de dados ativos 2.X do tab>Microsoft X de Project>Add Reference>COM….Eu usei 2.7 mas algum trabalhará). Adicionar a Using ADODB (ou importa ADODB) à parte superior de sua página.
Restuff sua variável do objeto:
Dts.Variables [“ExcelSet”].
Valor = ConvertToRecordset (excelTable
);
E você está. Você pode então reúso sua variável do objeto através das tarefas de SSIS. Whew! Vir do mundo de OO eu fui desanimado completamente para encontrar que este não trabalhou automaticamente. E, realmente Microsoft, um recordset de ADODB. Como 1999.