Pergunta : Reusar de SSIS a variável do objeto

Olá!, os peritos,

I am que trabalha em um projeto de SSIS no usuário 2008

I do SQL têm um problema para reúso o interior a da variável do objeto [laço do foreach]. Mas outras variáveis como a corda ou do int dos trabalhos o interior está bem [laço do foreach]. o

I descreve meu procedimento no retrato unido. e meu o código que eu me usei para chamar dentro objeto está no code.

(1) que eu gero um recordset e quero o ti ser usado em toda parte em meu pacote. Eu gero o recordset da [tarefa do fluxo de controle] e o then

(2) meu problema é quando no [laço de Foreach], na �a vez onde eu posso começ valores corretos da variável do objeto, mas em um tempo mais atrasado parece que variável do objeto é (ver por favor o retrato unido) o

Please para me ajudar isto. dos agradecimentos




adiantado. class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
1:
2:
3:
4:
5:
6:
7:
8:
9:
vácuo >public notpretty CreateNewOutputRows da ultrapassagem " do class= " de " codeSnippet668180 do id= do
        
class= do " lastRow do
>Attachments do " nome " do class= do class= " valor " do
>

nome de arquivo " do class= do >Snap1.jpg " fileSize " > (53 KB) Javascript " do href= o " dos " attachmentDetails do class= de (tipo de lima detalhes)
class= " descrição " procedure
>my do
o class= de
do >
class= do

Resposta : Reusar de SSIS a variável do objeto

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.aspx

Nã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.
Outras soluções  
 
programming4us programming4us