Na podstawie przedstawionych informacji robisz wszystko poprawnie. Jeśli jesteś nowicjuszem w SSIS, sugeruję, że otrzymasz kopię doskonałego dodatku Pomocnik BIDS . Ma świetne funkcje, które mogą naprawdę zaoszczędzić czas, szczególnie w odniesieniu do konfiguracji i wyrażeń.
Utworzyłem pakiet referencyjny, który miał Menedżera połączeń programu Excel wskazujący na C:\ssisdata\so_paulsmithjr.xls
i wszystko podłączone.
W tym momencie wiem, że wszystko działa, więc nadszedł czas, aby przenieść pakiet. Utworzyłem następujące zmienne i ich wartości
- Bieżący plik — C:\ssisdata\so_paulsmithjr.xls
- Miejsce — ##FILE_PATH##
- Połączenie szablonu —
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=##FILE_PATH##;Extended Properties="Excel 8.0;HDR=YES";
Czwarta zmienna jest ustawiona jako wyrażenie (kliknij prawym przyciskiem myszy na zmienną, okno właściwości. Ustaw Oceń jako Wyrażenie =Prawda i Wyrażenie poniżej)
- CurrentConnection -
REPLACE(@[User::TemplateConnection], @[User::PlaceHolder], @[User::CurrentFile])
Porównałem wartość CurrentConnection z ReferenceConnection (która jest oryginalną wartością ciągu połączenia programu Excel Connection Manager) i wszystko się zgadzało. W tym momencie, gdybym miał zmienić wartość CurrentFile na C:\ssisdata\so_paulsmithjr - Copy.xls, automatycznie odzwierciedliłoby się to w wartości CurrentConnection.
Ostatnią sztuczką byłoby użycie wyrażenia w Menedżerze połączeń programu Excel. Ponownie kliknij prawym przyciskiem myszy CM i pod Właściwościami pojawią się Wyrażenia. Nie rozszerzy się, ponieważ nic pod nim nie ma. Zamiast tego kliknij wielokropek, a następnie wybierz właściwość ConnectionString i ponownie wybierz wielokropek, tym razem przeciągając w dół @[User::CurrentFile]
zmienny. Kliknij OK x2 i teraz twój menedżer połączeń jest ustawiony do użycia wszędzie tam, gdzie określa zmienna CurrentConnection.
Czy to działa lepiej?