有没有人有任何使用带有平面文件的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仍然是假的。
答案 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;