【问题标题】:How to use EzAPI FlatFile Source in SSIS?如何在 SSIS 中使用 EsAPI 平面文件源?
【发布时间】:2010-09-01 18:15:38
【问题描述】:

我正在使用 EzAPI 通过 FlatFile Source 创建数据流

public class EzOleDbToFilePackage : EzSrcDestPackage<EzFlatFileSource, EzFlatFileCM, EzOleDbDestination, EzSqlOleDbCM>

使用来自http://blogs.msdn.com/b/mattm/archive/2008/12/30/ezapi-alternative-package-creation-api.aspx 的示例我正在尝试使用平面文件源。但是,在平面文件源/连接中,我无法映射平面文件中的列。

zFlatFileSource 是否有类似 Dest.DefineColumnsInCM() 的东西?

在 BIDM 中,当我打开创建的包时,我看到 EzFlatFileCM 说没有为此连接管理器定义列。一旦我单击列,它就会自动检测所有内容并且错误消失。我需要在我的代码中调用什么方法来让 EzFlatFileSource 自动选择这些列?

【问题讨论】:

    标签: c# sql-server-2008 ssis etl ezapi


    【解决方案1】:

    来自http://blogs.msdn.com/b/mattm/archive/2008/12/30/ezapi-alternative-package-creation-api.aspx的人们

    我相信自动确定源列的逻辑内置于平面文件连接管理器 UI 中,并且无法通过代码访问(我肯定想更改)。从我的代码示例来看,您似乎需要手动定义列。

    例如

           pkg.SrcConn.Unicode = (fileFormat == FileFormat.UNICODE);
    
           pkg.SrcConn.ConnectionString = srcFile;
    
           pkg.SrcConn.Columns.Add().DataType = dataType;
    
           pkg.SrcConn.Columns[0].ColumnType = "Delimited";
    
           pkg.SrcConn.ColumnNamesInFirstDataRow = false;
    
           pkg.SrcConn.ColumnDelimiter = ",";
    
           pkg.SrcConn.RowDelimiter = "\r\n";
    
           pkg.SrcConn.TextQualifier = "\"";
    
           pkg.SrcConn.Columns[0].TextQualified = testObject.textQualified;
    
           if (!pkg.Source.OutputColumnExists("col0"))
    
           {
    
               pkg.Source.InsertOutputColumn("col0");
    
           }
    
           pkg.Source.SetOutputColumnDataTypeProperties("col0", dataType, testObject.length, testObject.precision, testObject.scale, testObject.codePage);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      • 2018-06-11
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      相关资源
      最近更新 更多