2010-09-01 9 views
0

Je me sers du EzAPI pour créer un flux de données avec FlatFile SourceComment utiliser EzAPI FlatFile Source dans SSIS?

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

En utilisant l'exemple de http://blogs.msdn.com/b/mattm/archive/2008/12/30/ezapi-alternative-package-creation-api.aspx Je suis en train d'utiliser une source de fichier plat. Cependant, dans la source/connexion de fichier plat, je ne parviens pas à mapper les colonnes du fichier plat.

Y a-t-il quelque chose comme Dest.DefineColumnsInCM() pour zFlatFileSource?

Dans le BIDM lorsque j'ouvre le paquet créé, je vois que le EzFlatFileCM dit que les colonnes ne sont pas définies pour ce gestionnaire de connexions. Dès que je clique sur Colonnes, il détecte automatiquement tout et l'erreur disparaît. Quelle méthode ai-je besoin d'appeler dans mon code pour que EzFlatFileSource sélectionne automatiquement ces colonnes?

Répondre

1

Des gens à http://blogs.msdn.com/b/mattm/archive/2008/12/30/ezapi-alternative-package-creation-api.aspx

je crois que la logique qui détermine automatiquement les colonnes source est intégrée dans le gestionnaire de connexion fichier plat interface utilisateur, et n'est pas accessible via le code (quelque chose que je voudrais vraiment envie de changer) . À partir des exemples de code que j'ai, il semble que vous deviez définir vos colonnes manuellement.

ex.

 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); 
Questions connexes