Tag: ssis

如何使用SSIS脚本任务C#2005或2008解压缩包含多个文件的文件夹?

我的项目中有一项要求我需要解压缩一些zip文件夹。 我用google搜索并且在不使用外部库的情况下知道我无法实现这一点,或者使用GzipStream类我们可以解压缩.gz文件。 有没有什么办法可以在不使用任何外部库的情况下解压缩? PS:我只需要使用脚本任务组件,而.Net框架是3.0。 提前致谢。

为什么FireError在C#2012中失败,但是在VB中工作,而FireInformation在两者中都有效?

我在Visual Studio 2014中有一个SSIS包,如果任何记录遍历第三方转换中的特定路径,我想在脚本组件中引发错误。 我想在C#2012中执行此操作,但FireError方法会出错: ‘Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100.FireError(int,string,string,string,int,out bool)’的最佳重载方法匹配有一些无效的参数 当我尝试这样做时: bool fireAgain = false; IDTSComponentMetaData100 myMetaData; myMetaData = this.ComponentMetaData; myMetaData.FireError(0, “Script Component”, “Invalid Records”, string.Empty, 0, ref fireAgain); 但如果我将FireError更改为FireInformation,它会编译并运行 – 当然我需要引发错误,而不是提供信息。 另外,如果我使用Visual Basic而不是C#: Dim pbFireAgain As Boolean = False Dim myMetaData As IDTSComponentMetaData100 myMetaData = Me.ComponentMetaData myMetaData.FireError(0, “Script Component”, “Invalid Records”, String.Empty, 0, pbFireAgain) 也就是说,我的意思是,字面意思完全一样,但在不同的语言中,它运作正常。 VB也适用于FireInformation。 显然我可以通过使用VB来解决我的直接问题,但有人可以告诉我为什么这是这样的? 这似乎是C#的一个特定问题。 […]

使用C#反向工程SSIS包

需要提取source和destination source , destination和column名称。 为什么我要这样做是因为我有数以千计的软件包并且打开每个软件包平均有60 to 75列,列出所有必需的信息将花费大量时间并且不是一次性要求而且这项任务已经完成目前我的组织每两个月手动一次。 我正在寻找一些方法来逆向工程,将所有包保存在一个文件夹中,然后浏览每个包并获取信息并将其放入一些电子表格中。 我想在xml中打开包并获取感兴趣节点的信息并放入电子表格,这有点麻烦。 请建议可以从哪个库开始。

SSIS – 如何从文件路径位于另一个文本文件中的文本文件中加载数据?

我有一个文本文件,其中包含要加载到数据库中的文件列表。 该列表包含两列: FilePath,Type c:\f1.txt,A c:\f2.txt,B c:\f3.txt,B 我想提供此文件作为SSIS的源。 然后我希望它逐行完成。 对于每一行,我希望它读取FilePath列中的文件并检查Type。 如果type是A,那么我希望它忽略位于当前行的FilePath列的文件的前4行,然后将该文件中的其余数据加载到表中。 如果type是B,那么我希望它打开文件并将文件的第一列复制到表1中,将第二列复制到表2中以获取所有行。 如果有人可以请我提供我需要遵循的高级别步骤,我将非常感激。 任何帮助表示赞赏。

如何在SSIS中获取脚本组件中的列值?

在下面的代码中我得到列名,我在inputcolumn中找不到Value属性 我还需要获取列的值,而不仅仅是名称。 IDTSInput100 input = ComponentMetaData.InputCollection[0]; IDTSVirtualInput100 vinput = input.GetVirtualInput(); foreach (IDTSVirtualInputColumn100 inputcolumn in vinput.VirtualInputColumnCollection) { strAll += inputcolumn.Name + “, ” + Environment.NewLine; }

SSIS – 进程无法访问该文件,因为它正由另一个进程使用

我有以下Dataflow: 控制: 我只想将源文件夹中flatfiles的所有数据复制到sql数据库,并在复制后将这些文件移动到名为Done的文件夹中。 但是当我运行这个时,我得到错误: [File System Task] Error: An error occurred with the following error message: “The process cannot access the file because it is being used by another process.”. 数据被复制到sqlserver,但文件不会移动。 我的进程选项卡如下:

从BIML脚本自动生成SSIS包

完成BIML脚本(使用BIDS SQL Server 2008)创建SSIS包后,只需右键单击BIML文件,然后单击生成SSIS包。 如何通过代码(例如C#或SQL)生成SSIS包? 我可以想象一下BimlEngine.dll的一些shell脚本,例如BimlEngine.dll – “myFileServer \ myBimlScript”,“生成SSIS包” 我找到了这个c#代码项目https://github.com/jgsato/BimlGen 特别是这个文件https://github.com/jgsato/BimlGen/blob/master/BimlGenerator.cs 我只是不确定如何使用它。 谢谢你的帮助。

SSIS脚本组件:Microsoft.SqlServer.Dts.Pipeline.BlobColumn

在C#组件中苦苦挣扎。 我想要做的是在我的输入源中使用ntext的列,该列用管道分隔,然后将数组写入文本文件。 当我运行我的组件时,我的输出如下所示: DealerID,StockNumber,Option 161552,P1427,Microsoft.SqlServer.Dts.Pipeline.BlobColumn 我一直在使用GetBlobData方法,我正在努力解决它。 任何帮助都非常感谢! 这是完整的脚本: public override void Input0_ProcessInputRow(Input0Buffer Row) { string vehicleoptionsdelimited = Row.Options.ToString(); //string OptionBlob = Row.Options.GetBlobData(int ; //string vehicleoptionsdelimited = System.Text.Encoding.GetEncoding(Row.Options.ColumnInfo.CodePage).GetChars(OptionBlob); string[] option = vehicleoptionsdelimited.Split(‘|’); string path = @”C:\Users\User\Desktop\Local_DS_CSVs\”; string[] headerline = { “DealerID” + “,” + “StockNumber” + “,” + “Option” }; System.IO.File.WriteAllLines(path + “OptionInput.txt”, headerline); using (System.IO.StreamWriter […]

ssis vsta脚本组件在编辑VS2015时打开速度慢

自从升级visual studio 2015并使用ssis以来,我们已经体验到Script Task / Component的编辑器大约需要30秒才能打开。 我看到一些较旧的post建议将“127.0.0.1 crl.microsoft.com”添加到本地hosts文件中。 但是对我正在经历的问题没有影响。 真的希望有人有同样的问题,也许找到解决方案?

SSIS获取执行Sql任务结果集对象

我有一个执行sql任务项,它从存储过程中获取多行数据。 在变量表下声明了一个变量ObjShipment ,并在Result set下使用以下信息分配它: Result Set: Full result set Result Name: 0 Variable Name: User::ObjShipment 我编写了一个脚本任务,将ObjShipment变量分配给ReadOnly,我想知道如何检索其中的数据? 存储的proc返回多行,如Id, ItemId, DateCreated..但是如何检索它们,如果我只对ItemId感兴趣? 并且因为它返回多行,所以可能有多个ItemId。 我是新的ssis任何帮助将不胜感激!