Należało wyeksportować dane dla każdego pracownika do osobnego pliku. Ponieważ lista pracowników jest dość długa, aż prosi się o skorzystanie z paczki SSIS.
Zaczynamy od zdefiniowania listy pracowników gdzieś na serwerze SQL:
Tabela names zawiera kolumnę name, a wartości w niej znajdujące się to imiona (nazwiska, czy jakakolwiek inna informacja o pracowniku).
Budujemy projekt SSIS, a w nim umieszczamy i łączymy:
Najpierw task „Execute SQL Task”. Należy zmienić:
- Connection – wskazujesz na źródło danych odnoszące się do serwera i bazy na którym znajduje się pokazana wcześniej tabela
- ResultSet – wybierz FULL RESULT SET, żeby otrzymać listę wartości
- SQL statement – zapytanie wyciągające rekordy do listy
- w sekcji Result Set – zmień Result name na 0 (zero) a w polu wybierz zmienną o określonej przez siebie nazwie. Zmienna powinna być typu Object.
Teraz „Foreach loop”:
- Iteracja ma się odbywać w oparciu o Foreach ADO Enumerator, czyli po obiektach pobranych z bazy
- Tym obiektem jest zmienna User::Names
- Wartość „bieżącej” wartości na której działa pętla będzie przechowywana w innej zmiennej. Należy ją wskazać w zakładce Variable Mapping. Zmienna powinna być typu string:
Pora się przekonać, że to działa. Idźmy do tasku „Script task”. Chcemy aby pojawiło się okienko dialogowe z właśnie przetwarzanym nazwiskiem:
- Wskaż zmienną User::Name jako przekazywany do skryptu parametr
- Kliknij Edit script
- wpisz
MessageBox.Show(Dts.Variables[„Name”].Value.ToString());
w metodzie Main
Gotowe! Po uruchomieniu skrypt pokaże okna dialogowe po jednym dla każdego nazwiska. Debuggując zwróć uwagę, czy okienko dialogowe „nie schowało” się pod oknem Visual Studio. To często myli początkujących developerów SSIS.