带有EzApi的平面文件源

时间:2013-05-02 12:55:54

标签: ssis ezapi

有没有人有任何使用带有平面文件的EzAPI作为数据源的示例?文档中的所有示例都以OleDB连接开始。

具体来说,我无法弄清楚如何定义输入和输出列。

例如,假设我有一个CSV文件,其中包含firstname,surname和age的列。我想把它读成SSIS,按年龄排序并写出另一个文本文件。

根据这篇文章How to use EzAPI FlatFile Source in SSIS?我需要手动定义列,但我无法获得建议的代码。

如果我这样做:

if (!pkg.Source.OutputColumnExists("col0"))
{

       pkg.Source.InsertOutputColumn("col0");

}

bool newColumnExists = pkg.Source.OutputColumnExists("col0");

newColumnExists仍然是假的。

1 个答案:

答案 0 :(得分:1)

我认为此链接可以帮助您:http://blogs.msdn.com/b/mattm/archive/2008/12/30/ezapi-alternative-package-creation-api.aspx

您将了解如何创建一个。

如果要在平面文件中添加列,请使用以下代码:

 var flatFileCm = new EzFlatFileCM(this);
 flatFileCm.ConnectionString = file;

  foreach (var column in columns)
   {
    // Add a new Column to the Flat File Connection Manager
    var flatFileColumn = flatFileCm.Columns.Add();

    flatFileColumn.DataType = DataType.DT_WSTR;
    flatFileColumn.ColumnWidth = 255;

    flatFileColumn.ColumnDelimiter = columns.GetUpperBound(0) == Array.IndexOf(columns, column) ? "\r\n" : "\t";

    flatFileColumn.ColumnType = "Delimited";

    // Use the Import File Field name to name the Column
    var columnName = flatFileColumn as IDTSName100;
    if (columnName != null) columnName.Name = column;
 }
 flatFileCm.ColumnNamesInFirstDataRow = true;