Как использовать EzAPI FlatFile Source в SSIS? - PullRequest
0 голосов
/ 01 сентября 2010

Я использую 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 Я пытаюсь использовать источник плоских файлов. Однако в источнике / соединении плоского файла я не могу сопоставить столбцы из плоского файла.

Есть ли что-то вроде Dest.DefineColumnsInCM () для zFlatFileSource?

В BIDM, когда я открываю созданный пакет, я вижу, что EzFlatFileCM говорит, что столбцы не определены для этого диспетчера соединений. Как только я нажимаю на Столбцы, он автоматически обнаруживает все, и ошибка исчезает. Какой метод мне нужно вызвать в моем коде, чтобы EzFlatFileSource автоматически выбрал эти столбцы?

1 Ответ

1 голос
/ 09 сентября 2010

От людей с http://blogs.msdn.com/b/mattm/archive/2008/12/30/ezapi-alternative-package-creation-api.aspx

Я считаю, что логика, которая автоматически определяет исходные столбцы, встроена в интерфейс диспетчера соединений с плоскими файлами и недоступна через код (что-то, что я определенно хотел быизменить).Из примеров кода, которые у меня есть, похоже, вам нужно определить столбцы вручную.

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...