Tôi nên bắt đầu bằng cách nói rằng kinh nghiệm của tôi với việc viết kịch bản hoặc lập trình bằng các ngôn ngữ OOP bị giới hạn.Lắp ráp các gói SSIS trong PowerShell
Tôi đang làm việc trên phương pháp tạo và thực hiện các gói SSIS theo chương trình bằng PowerShell. Thật không may, hầu hết các tài nguyên có sẵn cho PowerShell và SSIS là để gọi PS từ SSIS, không phải là cách khác xung quanh.
Tôi đã tìm thấy một số tài nguyên cho VB/C# để tạo các gói SSIS.
tôi đã thành công trong việc chuyển đổi hầu hết các mã bằng cách gọi các hội DTS/SSIS, nhưng nó thất bại bây giờ chuyển đổi các đối tượng TaskHost đến một mainpipe. đang
mẫu:
[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)
Tất cả mọi thứ hoạt động tốt đến tận dòng cuối cùng, khi tôi nhận được lỗi:
Cannot convert the "System.__ComObject" value of type "System.__ComObject#{}" to type "Microsoft.SqlServer.Dts.Pipeline.Wrapper.MainPipeClass"
Bất kỳ sự trợ giúp hay ý tưởng được hoan nghênh!
Tôi upvoting câu hỏi cũ này bởi vì tôi không thấy lý do tại sao nó có downvotes =/ – jadarnel27
@ jadarnel27 - họ chủ yếu là trả thù downvotes. Tôi bực bội một người nào đó và họ downvoted vài câu hỏi tôi đã hỏi (bởi vì nó miễn phí để downvote câu hỏi). Tôi đánh giá cao ý thức của bạn về sự công bằng. – JNK