Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एसएसआईएस 2012 में गतिशील रूप से स्क्रिप्ट कार्य कोड सेट करें

जैसा कि आपने देखा, VSTA सहायक विधियां आप 2008 में उपयोग कर सकते थे 2012 में स्थानांतरित/हटा दिए गए थे। ऐसा करना अभी भी संभव है, लेकिन कोड बदल गया है।

का उपयोग करके मौजूदा प्रोजेक्ट को लोड करना सबसे आसान काम है। VstaHelper.LoadProjectFromFolder ()।

यदि आप स्क्रिप्ट फ़ाइलों को गतिशील रूप से जोड़ना चाहते हैं, तो नीचे दिया गया स्निपेट देखें। आपको दो मुख्य बातों का ध्यान रखना चाहिए:

ScriptingEngine और VstaHelper वर्ग स्वयं VSTA का प्रतिनिधित्व करते हैं। यह वह जगह है जहाँ आप प्रोजेक्ट बनाएंगे, और नई फ़ाइलें जोड़ेंगे। आप किसी मौजूदा फ़ाइल को सीधे यहां से हटा या बदल नहीं सकते हैं। जब आप SaveProjecToStorage() को कॉल करते हैं, तो यह VSTA विंडो को बंद करने जैसा है ...

ScriptTask.ScriptStorage आपको सीधे स्रोत फ़ाइल सामग्री में हेरफेर करने की अनुमति देता है। यहां से, आप किसी फ़ाइल की सामग्री को संशोधित कर सकते हैं।

निम्नलिखित कोड स्निपेट को आरंभ करने में आपकी सहायता करनी चाहिए।

static void Main(string[] args)
{
    // 1. Create new package, and add a script task
    var pkg = new Package();
    var exec = pkg.Executables.Add("STOCK:ScriptTask");
    var th = (TaskHost)exec;
    th.Name = "Script Task";
    th.Description = "This is a Script Task";
    var task = (ScriptTask)th.InnerObject;

    // 2. Set the script language - "CSharp" or "VisualBasic"
    task.ScriptLanguage = VSTAScriptLanguages.GetDisplayName("CSharp");

    // 3. Set any variables used by the script
    //task.ReadWriteVariables = "User::Var1, User::Var2";

    // 4. Create a new project from the template located in the default path
    task.ScriptingEngine.VstaHelper.LoadNewProject(task.ProjectTemplatePath, null, "MyScriptProject");

    // 5. Initialize the designer project, add a new code file, and build
    //task.ScriptingEngine.VstaHelper.Initalize("", true);
    //task.ScriptingEngine.VstaHelper.AddFileToProject("XX.cs", "FileContents");
    //task.ScriptingEngine.VstaHelper.Build("");

    // 6. Persist the VSTA project + binary to the task
    if (!task.ScriptingEngine.SaveProjectToStorage())
    {
        throw new Exception("Save failed");
    }

    // 7. Use the following code to replace the ScriptMain contents
    var contents = File.ReadAllText("path to file");
    var scriptFile =
        task.ScriptStorage.ScriptFiles["ScriptMain.cs"] =
        new VSTAScriptProjectStorage.VSTAScriptFile(VSTAScriptProjectStorage.Encoding.UTF8, contents);


    // 8. Reload the script project, build and save
    task.ScriptingEngine.LoadProjectFromStorage();
    task.ScriptingEngine.VstaHelper.Build("");

    // 9. Persist the VSTA project + binary to the task
    if (!task.ScriptingEngine.SaveProjectToStorage())
    {
        throw new Exception("Save failed");
    }

    // 10. Cleanup
    task.ScriptingEngine.DisposeVstaHelper();

    // 11. Save
    string xml;
    pkg.SaveToXML(out xml, null);

    File.WriteAllText(@"c:\temp\package.dtsx", xml);
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं SQL एजेंट कार्य में संग्रहीत कार्यविधि को कैसे निष्पादित करूं?

  2. पैरेंट चाइल्ड पदानुक्रम तालिका से क्वेरी कैसे बनाएं

  3. एसक्यूएल 6 टेबल में शामिल हो रहा है

  4. SQL सर्वर 2000 - लिंक्ड सर्वर

  5. एक मान के साथ माइनस के बाद एक तालिका से डेटा का चयन करने की आवश्यकता है