Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
SSIS Integration Runtime v rámci Azure Data Factory
Úloha Script, dostupná v okně Control Flow v návrhu Integration Services, a komponenta Script, dostupná v okně Tok dat, mají v balíčku Integration Services velmi odlišné účely. Úkol je univerzální nástroj pro řízení toků, zatímco komponenta slouží jako zdroj, transformace nebo cíl v datovém toku. Navzdory odlišným účelům mají však úloha Script a komponenta Script určité podobnosti v programovacích nástrojích, které používají, a objektech v balíčku, které vývojářům zpřístupňují. Pochopení jejich podobností a rozdílů vám může pomoci efektivněji využívat jak úkol, tak komponent.
Podobnosti mezi úlohou skriptu a složkou skriptu
Úloha Script a komponenta Script sdílejí následující společné vlastnosti.
| funkce | Description |
|---|---|
| Dva režimy návrhového času | V úlohě i komponentě začínáte zadáním vlastností v editoru a pak přepnete do vývojového prostředí a píšete kód. |
| Microsoft Visual Studio Nástroje pro aplikace (VSTA) | Jak úloha, tak komponenta používají stejné VSTA IDE a podporují kód napsaný buď ve Microsoft Visual Basic, nebo Microsoft Visual C#. |
| Předkompilované skripty | Od SQL Server 2008 Integration Services (SSIS) jsou všechny skripty předkompilovány. V dřívějších verzích jste mohli specifikovat, zda jsou skripty předkompilované. Skript je předkompilován do binárního kódu, což umožňuje rychlejší vykonání, ale za cenu zvětšení velikosti balíčku. |
| Debugging | Jak úloha, tak komponenta podporují breakpointy a krokové procházení kódu při ladění v návrhovém prostředí. Pro více informací viz Kódování a ladění skriptové úlohy a Kódování a ladění skriptní komponenty. |
Rozdíly mezi skriptovou úlohou a skriptovou složkou
Úloha Script a komponenta Script mají následující významné rozdíly.
| funkce | skriptová úloha | Komponenta skriptu |
|---|---|---|
| Řídicí tok / Tok dat | Skriptová úloha je nakonfigurována na záložce Control Flow v designéru a běží mimo datový tok balíčku. | Skriptová komponenta je konfigurována na stránce Tok dat designéra a představuje zdroj, transformaci nebo cíl v úlohě Tok dat. |
| Purpose | Skriptní úkol může zvládnout téměř jakýkoli obecný úkol. | Musíte specifikovat, zda chcete vytvořit zdrojový kód, transformaci nebo cíl pomocí komponenty Script. |
| Execution | Skriptní úloha spustí vlastní kód v určitém bodě pracovního toku balíčku. Pokud ji nedáš do loop kontejneru nebo event handleru, spustí se to jen jednou. | Komponenta Script také běží jednou, ale obvykle spustí hlavní zpracovatelskou rutinu jednou pro každý řádek dat v datovém toku. |
| Editor | Editor úloh skriptů má tři stránky: Obecné, Skriptové a Výrazy. Pouze vlastnosti ReadOnlyVariables , ReadWriteVariables a ScriptLanguage přímo ovlivňují kód, který můžete napsat. | Editor transformace skriptů má až čtyři stránky: vstupní sloupce, vstupy a výstupy,skripty a správce připojení. Metadata a vlastnosti, které na každé z těchto stránek nastavíte, určují členy základních tříd, které jsou automaticky generovány pro vaše použití v kódování. |
| Interakce s balíčkem | V kódu napsaném pro skriptní úkol používáte vlastnost DTS k přístupu k dalším funkcím balíčku. Vlastnost Dts je členem třídy ScriptMain . | V kódu komponent Script používáte typované vlastnosti accessoru k přístupu k určitým funkcím balíčku, jako jsou proměnné a správci spojení. Metoda PreExecute umožňuje přístup pouze k proměnným pouze pro čtení. Metoda PostExecute umožňuje přístup jak k proměnným pouze pro čtení, tak k čtení/zápisu. Pro více informací o těchto metodách viz Kódování a ladění skriptní komponenty. |
| Použití proměnných | Skriptní úloha využívá Variables vlastnost objektu DTS k přístupu k proměnným, které jsou dostupné prostřednictvím úlohy ReadOnlyVariables a ReadWriteVariables vlastností. Příklady: [Visual Basic] Dim myVar as String myVar = Dts.Variables("MyStringVariable").Value.ToString[C#] string myVar; myVar = Dts.Variables["MyStringVariable"].Value.ToString(); |
Skriptová komponenta využívá typované vlastnosti accessoru automaticky generované třídy, vytvořené z vlastností ReadWriteVariables a ReadOnlyVariables komponenty. Příklady: [Visual Basic] Dim myVar as String myVar = Me.Variables.MyStringVariable[C#] string myVar; myVar = this.Variables.MyStringVariable; |
| Použití spojení | Úloha Script využívá Connections vlastnost objektu DTS k přístupu ke správcům spojení definovaným v balíčku. Příklady: [Visual Basic] Dim myFlatFileConnection As String myFlatFileConnection = _ DirectCast(Dts.Connections("Test Flat File Connection").AcquireConnection(Dts.Transaction), _ String)[C#] string myFlatFileConnection; myFlatFileConnection = (Dts.Connections["Test Flat File Connection"].AcquireConnection(Dts.Transaction) as String); |
Skriptová komponenta používá typované vlastnosti přístupových modulů automaticky generované základní třídy, vytvořené ze seznamu správců spojení zadaných uživatelem na stránce Správce spojení editoru. Příklady: [Visual Basic] Dim connMgr As IDTSConnectionManager100 connMgr = Me.Connections.MyADONETConnection[C#] IDTSConnectionManager100 connMgr; connMgr = this.Connections.MyADONETConnection; |
| Vyvolávání událostí | Úloha Script využívá Events vlastnost objektu DTS k vyvolání událostí. Příklady: [Visual Basic] Dts.Events.FireError(0, "Event Snippet", _ ex.Message & ControlChars.CrLf & ex.StackTrace, _ "", 0)[C#] Dts.Events.FireError(0, "Event Snippet", ex.Message + "\r" + ex.StackTrace, "", 0); |
Skriptová komponenta vyvolává chyby, varování a informační zprávy pomocí metod IDTSComponentMetaData100 rozhraní vrácených vlastností ComponentMetaData . Příklady: [Visual Basic] Dim myMetadata as IDTSComponentMetaData100 myMetaData = Me.ComponentMetaData myMetaData.FireError(...) |
| Logging | Skriptní úloha využívá metodu Log objektu Dts k zaznamenání informací povoleným poskytovatelům logů. Příklady: [Visual Basic] Dim bt(0) As Byte Dts.Log("Test Log Event", _ 0, _ bt)[C#] byte[] bt = new byte[0]; Dts.Log("Test Log Event", 0, bt); |
Skriptová komponenta využívá metodu Log automaticky generované základní třídy k zaznamenání informací oprávněným poskytovatelům logů. Příklady: [Visual Basic] Dim bt(0) As ByteMe.Log("Test Log Event", _0, _bt)[C#] byte[] bt = new byte[0]; this.Log("Test Log Event", 0, bt); |
| Vrácení výsledků | Skriptní úloha využívá jak vlastnost, TaskResult tak volitelnou ExecutionValue vlastnost objektu Dts k oznámení výsledků běhu za běhu. | Skriptová komponenta běží jako součást úlohy Tok dat a nehlásí výsledky pomocí žádné z těchto vlastností. |