Pergunta

Eu tenho um pacote SSIS que lê um arquivo do Excel (Data Flow Source) e transferir os dados para o SQL Server usando OLE DB Destination pacote de fluxo de dados item.This é executado pela Net Application usando o modelo SSIS objeto. O pacote armazenado em um sistema de arquivos dentro da subpasta do aplicativo.

O pacote funciona bem na minha máquina de desenvolvimento / teste both.Both estes máquina tem 32 bits win2k3. O SSIS foi construído no APOSTAS 32bit Ambiente.

Quando eu Déployé esta aplicação em máquina de produção que tem x64 win2k3 edição padrão i obter o erro

de erro Um OLE DB ocorreu. Código de erro: 0x80040154. Um registro OLE DB está disponível. Fonte: "OLE DB Service Components Microsoft" HRESULT: 0x80040154 Descrição: "Classe não registrada". O método AcquireConnection chamada para o gerenciador de conexão "Connection Manager Excel" falhou com código de erro 0xC0202009. componente "Excel Source" (630) falhou na validação e voltou 0xC020801C código de erro.

Eu li em outros posts que definindo a propriedade Run64BitRuntime do projeto (durante o tempo de design) resolve o problema quando executá-lo a partir das propostas.

Como faço para definir essa propriedade através de modelo de objeto SSIS.

Aqui está a parte do código que executa o pacote

   _application = New Application()
   _package = New Package()
   _package = _application.LoadPackage(packageName, Nothing)
   _updateResult = _package.Execute()

Graças

Masood

Foi útil?

Solução

A propriedade Run64BitRuntime só se aplica para o interior correndo embalado das propostas. Não há necessidade de definir essa propriedade quando executado fora das propostas.

Eu acredito que você emite é que, quando executado em código, o pacote está em execução no modo de 64 bits, no entanto, Excel não suporta isso. A fim de fazer este trabalho você vai precisar desembolsar para lançar a versão de DTExec de 32 bits.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top