W mojej aplikacji zadanie skryptu jest tworzone dynamicznie.Dynamiczne ustawianie skryptowego kodu zadania w SSIS 2012
W implementacji SSIS w SQL Server 2008, następująca metoda działała dobrze.
private void SetSourceCode(ScriptTask scriptTask, string code, string codeName)
{
string fileName = "ScriptMain.vb";
string language = "VisualBasic";
string proj = ".vbproj";
scriptTask.ScriptLanguage = VSTAScriptLanguages.GetDisplayName(language);
scriptTask.ScriptingEngine.InitNewScript(language,
scriptTask.ScriptProjectName, proj);
scriptTask.ScriptingEngine.ShowDesigner(false);
scriptTask.ScriptingEngine.AddCodeFile(fileName, code);
if (!scriptTask.ScriptingEngine.Build())
throw new Exception("Failed to build vb script code: " + codeName);
scriptTask.ScriptingEngine.SaveScriptToStorage();
if (!scriptTask.ScriptingEngine.CloseIDE(false))
{
throw new Exception("Unable to close Scripting engine.");
}
}
Jak mogę przenieść ten kod do programu SQL Server 2012, ponieważ następujące metody są usuwane z SQL Server 2012 dll-S (zespoły):
- InitNewScript
- AddProjectReference
- AddCodeFile
- SaveScriptToStorage
- CloseIDE
- Budowanie
- ShowDesigner
Generalnie, w jaki sposób dynamicznie ustawić kod źródłowy dla zadania skryptu w programie SQL Server 2012?
+1 i gwiazda dla Ciebie, ponieważ nigdy nie próbowałem tego zrobić. Dokumentacja, którą znajduję, odnosi się do [ScriptingEngine] (http://technet.microsoft.com/en-us/library/microsoft.sqlserver.dts.tasks.scripttask.vstataskscriptingengine.aspx) i stwierdza: "To API obsługuje SQL Server Infrastruktura 2012 roku i nie jest przeznaczona do użycia bezpośrednio z twojego kodu ", więc nie powinienem wyglądać wystarczająco mocno. Szkoda, że mam do wzięcia udział w produkcji, brzmi to jak zabawne wyzwanie. – billinkc
Aby skierować cię we właściwym kierunku (ponieważ zrobiłem to tylko dla komponentów skryptów, a nie zadań skryptowych), istnieje nowy interfejs VSTA dla SSIS 2012, Klasa VSTAHelper - http://tinyurl.com/vstahelper - gdzie poszły wszystkie twoje metody. –