Como posso usar um contêiner de loop foreach no SSIS para percorrer uma matriz multidimensional?
Eu tenho um pacote SSIS que está atualizando algumas tabelas usando scripts e um contêiner foreach entre algumas outras coisas. estou a usarSqlConnection
eSqlCommand
para chamar essa consulta em uma tarefa de script antes do contêiner foreach:
SELECT TOP 10 DirectoryID, DirectoryPath FROM ProjectDirectory ORDER BY LastAudit
e estou usandoSqlDataReader
para adicioná-los a um array multidimensional [10,2]. Eu atribuo a matriz a uma variável de objetoDirectoryList
para que eu possa percorrê-lo em um contêiner de loop foreach. Ele deve se parecer com {{"1", "C: \ Folder1"}, {"2", "C: \ Folder2"}, ...} Eu acredito.
A questão é que eu comecei a usar este software há alguns dias, e estou confuso sobre como o contêiner do loop foreach faz um loopDirectoryList
variável. No momento, na guia de coleta do contêiner, eu tenho o Enumerador definido como Enumerador Foreach From Variable, com a variável definida comoUser::DirectoryList
. Eu tenho variáveisUser::DirectoryID
definido para o índice 0 eUser::DirectoryPath
set to index 1. Estou tentando fazer com que ele faça um loop apenas no nível superior da matriz, de modo que em cada loop as variáveis ID e path sejam designadas para "1" e "C: \ Folder1" e, em seguida, para a próxima vez que passa pelo loop eles são atribuídos a "2" e "C: \ Folder2", etc. Eu tenho um componente de script que usa o caminho para encontrar algumas informações, e eu uso o id para atualizar a linha correta de um sql mesa.
Para depurar, vou mostrar o ID e o caminhoMessageBox.Show(Variables.DirectoryID + ", " + Variables.DirectoryPath)
da primeira iteração, e está mostrando "8, 8". O 8 corresponde ao id da linha que deve aparecer primeiro. Na próxima vez que ele for executado, ele me fornecerá o caminho correto duas vezes, "C: \ Folder1, C: \ Folder1". Portanto, aparentemente, o mapeamento de variáveis não está funcionando, está mapeando as duas variáveis para o mesmo índice. Em qualquer caso, não está funcionando, então estou pensando que (e talvez ambos?) O Enumerador Foreach From Variable não é o que eu deveria escolher, ou que eu não posso usar um array multidimensional em um container foreach. Eu procurei e não encontrei nada e tudo isso pode ser difícil de entender, mas alguma sugestão?