Puteti crea pachetele SSIS programatic (folosind namespace-ul
Microsoft.SqlServer.Dts.Runtime), din VS 2005, pornind de la
template-ul Business Intelligence Projects ---> Integration Services
Projects sau accesand All Programs ---> Microsoft SQL Server 2005
---> SQL Server Business Intelligence Development Studio.
In exemplul de fata veti crea un pachet SSIS folosind VS.
1. Template-ul "Integration Services Projects" este instalat odata cu
SQL Server 2005 - cand ajungeti la Components to install --->
Advanced selectati "Business Intelligence Development Studio" din
"Client Components". Cand veti crea un nou proiect in VS 2005, veti
observa in sectiunea "Project types" grupul de tempalates "Business
Intelligence Projects".
New SSISP ackage - img1
2. Spre deosebire de DTS din SQL 2000, succesiunea task-urilor de
procesare din pachet ("control flow") este separata de transformarea
propriu-zisa a datelor de la sursa la destinatie ("data flow").
Conexiunile cu diverse surse de date (de exemplu tabele dintr-o baza de
date sau fisiere text) se definesc in tab-ul "Connection Managers" din
partea de jos a ecranului. "Connection manager" este un obiect care
reprezinta o conexiune - una dintre proprietatile sale este "connection
string". Odata definit, un "connection manager" poate fi asociat cu un
task din "control flow" sau cu transformarile din "data flow".
Tab-ul "event handlers" contine task-uri corespunzatoare evenimentelor
produse de pachet (de exemplu "OnError" se produce daca in cursul
executiei pachetului apar erori)
"Package explorer" listeaza continutul pachetului - task-uri, "connection managers", variabile, etc.
New SSIS Package - img2
3. Pentru a adauga un prim "connection manager" dati un "right click"
pe aria "Connection Managers" si alegeti "ADO.NET Connection".
* Aveti nevoie de acest tip de conexiune pentru script task-ul din
pasul 4. Gasiti o explicatie amanuntita in Books Online ---> Using
Connections in the Script Task.
Apasati butonul "New" si specificati
serverul si baza de date.
Specificati in connection string "MultipleActiveResultSets=True" daca
vreti sa profitati de "MARS" -
vezi imaginea
4. Alegeti din Toolbox un "script task"
* Gasiti o lista completa de task-uri in Books Online --->Integration Services Tasks.
Din meniul "right click" selectati "Edit" ---> Script ---> Design Script.
Editorul Script Task
*Din pacate, nu puteti programa decat in VB...
* Scriptul din acest exemplu selecteaza o coloana de tip "string"
dintr-un tabel; sirul este prelucrat iar rezultatul final este inserat
in tabelul "Category"
De exemplu sirul initial este de forma "/Imported
Wine/France/Burgundy/Meursault". Scriptul va "sparge" sirul dupa "/" si
va crea in tabelul "Category" inregistrarile:
CategoryID Name
ParentCategoryID
1
Imported Wine
0
2
France
1
3
Burgundy
2
4
Meursault
3
Transact SQL nu este "expert" in job-uri precum prelucrarea de siruri sau "regular expressions"; folositi .NET in aceste cazuri.
5. Pentru cazul in care apar erori in executie, puteti trimite un mesaj
de e-mail folosind un "Send mail task". In cazul de fata veti folosi
"Send mail task" intr-un "event handler" corespunzator evenimentului
"on error" la nivel de pachet.
*Lista completa de evenimente: Books Online ---> Integration Services Event Handlers
Mai intai veti crea un "
SMTP connection manager", care conecteaza pachetul la un server SMTP (selectati meniul SSIS ---> New connection).
6. Puteti configura "Send mail task" folosind
variabile.
Variabilele pot fi incluse intr-un fisier de configurare care va fi
actualizat la o eventuala portare a pachetului pe o alta masina.
Variabilele definite de catre utilizator se adauga folosind tab-ul
"Variables" din partea dreapta a ecranului. Domeniul ("scope")
variabilei poate fi pachetul SSIS, un task, un container sau un event
handler (ca in cazul de fata).
Task-ul se configureaza din editor (accesat cu un "right click").
Incepeti cu sectiunea "Expressions" - click pe butonul "..." si din
drop-down-ul "Property" alegeti "FromLine" si expandati "
Expression Builder". Nodul "Variables" listeaza variabilele sistem si "user defined" . Asociati urmatoarele proprietati cu variabile:
FromLine ---> User::sender_mail
ToLine ---> User::recipient_mail
Subject ---> System::TaskName
* Lista completa de variabile sistem: Books Online ---> System Variables
7. Rulati pachetul ca pe orice proiect de VS - apasati "start debugging"