में एसएसआईएस पैकेजों को इकट्ठा करना मुझे ओओपी भाषाओं में स्क्रिप्टिंग या प्रोग्रामिंग के साथ मेरा अनुभव सीमित करना चाहिए।पावरशेल
मैं PowerShell का उपयोग करके प्रोग्रामिंग रूप से एसएसआईएस पैकेज बनाने और निष्पादित करने के लिए एक विधि पर काम कर रहा हूं। दुर्भाग्यवश, पावरशेल और एसएसआईएस के लिए उपलब्ध अधिकांश संसाधन एसएसआईएस से पीएस को कॉल करने के लिए हैं, न कि दूसरी तरफ।
हालांकि, मैंने एसएसआईएस पैकेज बनाने के लिए वीबी/सी # के लिए कई संसाधन पाए हैं।
मैं डीटीएस/लघु उद्योगों विधानसभाओं को फोन करके कोड के सबसे परिवर्तित करने में सफल रहा है, लेकिन यह एक mainpipe को TaskHost वस्तु परिवर्तित करने पर अब नाकाम रहने के है।
नमूना कोड:
[Void][Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.ManagedDTS')
[Void][Reflection.Assembly]::LoadWithPartialName('Microsoft.Sqlserver.DTSPipelineWrap')
# Create the Package and application, set its generic attributes
$Package = New-Object Microsoft.SqlServer.Dts.Runtime.Package
$Package.CreatorName = $CreatorName
$App = New-Object Microsoft.SqlServer.Dts.Runtime.Application
# Set connection info for our package
$SourceConn = $package.Connections.Add("OLEDB")
$SourceConn.Name = "Source Connection"
$SourceConn.set_ConnectionString("Data Source=$SourceServer;Integrated Security=True")
$TargetConn = $package.Connections.Add("OLEDB")
$TargetConn.Name = "Target Connection"
$TargetConn.set_ConnectionString("Data Source=$TargetServer;Integrated Security=True")
# Build the tasks
# Data Flow Task - actually move the table
[Microsoft.SQLServer.DTS.Runtime.Executable]$XferTask = $Package.Executables.Add("STOCK:PipelineTask")
$XferTaskTH = [Microsoft.SqlServer.Dts.Runtime.TaskHost]$XferTask
$XferTaskTH.Name = "DataFlow"
$XferTaskTH.Description = "Dataflow Task Host"
$DataPipe = [Microsoft.SQLServer.DTS.pipeline.Wrapper.MainPipeClass]($XferTaskTH.InnerObject)
सब कुछ अंतिम पंक्ति टिल ठीक काम करता है, जब मैं त्रुटि मिलती है:
Cannot convert the "System.__ComObject" value of type "System.__ComObject#{}" to type "Microsoft.SqlServer.Dts.Pipeline.Wrapper.MainPipeClass"
किसी भी सहायता या विचारों का स्वागत है!
मैं इस पुराने प्रश्न को उखाड़ फेंक रहा हूं क्योंकि मुझे नहीं लगता कि इसका डाउनवॉट्स क्यों है = – jadarnel27
@ jadarnel27 - वे ज्यादातर बदला लेने वाले हैं। मैंने किसी को बंद कर दिया और उन्होंने मुझसे पूछे गए कुछ प्रश्नों को कम कर दिया (क्योंकि यह प्रश्नों को कम करने के लिए स्वतंत्र है)। मैं निष्पक्षता की भावना की सराहना करता हूं। – JNK