0

EzAPIを使用してFlatFileSourceでデータフローを作成しています

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がこれらの列を自動的に取得するようにするには、コードでどのメソッドを呼び出す必要がありますか?

4

1 に答える 1

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);
于 2010-09-08T20:23:18.860 に答える