sql >> Databáze >  >> RDS >> Sqlserver

Proč se mé připojení ODBC nezdaří při spuštění načtení SSIS v sadě Visual Studio, ale ne při spuštění stejného balíčku pomocí nástroje Execute Package Utility

Uvádím zde nějaké předpoklady, ale budu předpokládat, že se jedná o problém 32 vs 64 bitů. Pro ověření vyzkoušejte tyto dva příkazy z příkazového řádku (Windows Key, R, cmd.exe nebo Start, Spustit, cmd.exe)

"C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\dtexec.exe" /file C:\myPackage.dtsx
"C:\Program Files\Microsoft SQL Server\110\DTS\Binn\dtexec.exe" /file C:\myPackage.dtsx

První spustí váš balíček v 32bitovém režimu, zatímco druhý jej spustí v 64bitovém režimu. Na tom bude záležet, protože vaše ovladače a jakékoli DSN, které jste vytvořili, budou viditelné pouze ve 32/64bitovém světě.

Oprava SSDT

Jakmile zjistíte, kterou z nich potřebujete, pravděpodobně 32bitovou verzi, musíte zajistit, aby váš projekt používal odpovídající dobu běhu. Klikněte pravým tlačítkem na svůj projekt a vyberte Vlastnosti a poté přejděte na kartu Debugging v části Vlastnosti konfigurace.

Po invertování hodnoty Run64BitRuntime předpokládám, že váš balíček bude fungovat v rámci SSDT.

Oprava agenta SQL

Chcete-li změnit bitteness kroku úlohy, budete muset upravit existující úlohu SQL Agent. To bude na kartě Konfigurace a poté na kartě Upřesnit. Zaškrtněte/zrušte zaškrtnutí 32bitového runtime.

Lži a podvod

Pozorní lidé mohou vidět, že dtexec nabízí /X86 volba. Nevěř tomu. Jediný způsob, jak získat správnou bitovou hodnotu, je explicitně zavolat správný dtexec.exe Dokumentace to dokonce říká, ale dokumentaci nikdo nečte.

Tuto možnost používá pouze SQL Server Agent. Tato možnost je ignorována, pokud spustíte obslužný program dtexec na příkazovém řádku.




  1. Android – Jak mohu předat data související se dvěma tabulkami metodě vkládání poskytovatele obsahu

  2. Část 3 – Zákazníci, hovory a schůzky

  3. Seskupit podle aliasu (Oracle)

  4. Jak odstranit virtuální počítač z VirtualBoxu