Как добавить пользовательский нижний колонтитул в плоский файл служб SSIS - отдельный компонент или задачу сценария? - PullRequest
0 голосов
/ 09 ноября 2011

У меня есть компонент потока данных, состоящий из следующего:

1.) Чтение файла Excel
2.) «Компонент преобразования скрипта»
3.) Запись в плоский файл

Все работает нормально, однако я пытался добавить верхний и нижний колонтитулы.
Оба верхних и нижних колонтитула являются пользовательскими и должны быть получены из данных в файле.

Я могу открыть файл в C # и написать код низкого уровня, но это, кажется, довольно распространенная задача, и я подумал, что будет что-то общее.

Дайте мне знать, если кто-то сделал это.

1 Ответ

1 голос
/ 10 ноября 2011

Подход, указанный в статье Toolbox.com, безусловно, будет работать.(Вам нужно добавить другой поток данных, но потоки данных дешевы.)

С другой стороны, поскольку у вас уже есть компонент Script в существующем потоке данных, вы можете использовать его для генерациистроки заголовка и трейлера.

Сначала измените SynchronousInputID выходных данных компонента сценария на None, чтобы можно было создавать дополнительные строки:

enter image description here

Далееобновите метод ProcessInputRow () и добавьте метод FinishOutputs () в следующем виде:

[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{
    private bool _headerWritten = false;

    public override void IncomingRows_ProcessInputRow(IncomingRowsBuffer Row)
    {
        if (!_headerWritten)
        {
            // Code to write the header row goes here
            _headerWritten = true;
        }
        OutgoingRowsBuffer.AddRow();
        // do whatever other processing you need for this row of input
    }

    public override void FinishOutputs()
    {
        base.FinishOutputs();
        // Code to write the footer row goes here
    }
}

Этот подход требует немного больше кода, но позволяет вам делать все за один проход, что для достаточно больших файлов может бытьважный.(С другой стороны, таблица Excel не должна быть такой большой ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...