Компонент сценария SSIS, используемый в качестве источника, не записывает строки в назначение SQLC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Компонент сценария SSIS, используемый в качестве источника, не записывает строки в назначение SQL

Сообщение Anonymous »

Я использую SSIS в Visual Studio 2019 для чтения текстовых файлов фиксированной ширины. В зависимости от первого символа каждой строки в файле фиксированной ширины я отправляю строку на один из двух указанных выходов. Оба вывода имеют длину 700, что соответствует фиксированной ширине текстового файла.
Компонент Script запрограммирован с использованием C# и оценивает первый символ каждой строки, используя пару if/else. операторы.
Мой вопрос: приведенный ниже сценарий строится, и пакет SSIS работает успешно, но записывает 0 строк в таблицы базы данных. Я думаю, что основная причина заключается в вызове line.Split(delimiters), и мне нужны инструкции, как решить эту проблему.
public class ScriptMain : UserComponent
{

private StreamReader textReader;
private string rxFile;

private string stagingPath = "mypath";
private char[] delimiters;

public override void AcquireConnections(object Transaction)
{
IDTSConnectionManager100 connMgr = this.Connections.TransactionFile;
rxFile = (string)connMgr.AcquireConnection(null);
}

public override void PreExecute()
{
base.PreExecute();
textReader = new StreamReader(rxFile);
}

public override void CreateNewOutputRows()
{
DirectoryInfo di = new DirectoryInfo(stagingPath);
FileInfo[] files = di.GetFiles("*.txt");

foreach (FileInfo file in files)
{
using (FileStream fileStream = file.OpenRead())
using (textReader)
{

while (!textReader.EndOfStream)
{
string line = textReader.ReadLine();
delimiters = Environment.NewLine.ToCharArray();
string[] items = line.Split(delimiters);

if (items[0] == "2")
{
PharmacyBuffer.AddRow();
PharmacyBuffer.Column0 = items[0];
}
else if (items[0] == "4")
{
TransactionsBuffer.AddRow();
TransactionsBuffer.Column0 = items[0];
}
}
}
}
textReader.Close();
textReader.Dispose();

}

public override void PostExecute()
{
base.PostExecute();
}
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... estination
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка задачи сценария SSIS: «Версия сценария 16.0 не поддерживается»
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Пакет SSIS – как импортировать данные из источника Excel вместо всего листа
    Anonymous » » в форуме C#
    0 Ответы
    49 Просмотры
    Последнее сообщение Anonymous
  • Анализ источника SSIS.xml для получения сопоставлений таблиц
    Anonymous » » в форуме C#
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Как объединить назначение фрагментов, назначение маски и трансляцию в PyTorch?
    Anonymous » » в форуме Python
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Как объединить назначение фрагментов, назначение маски и трансляцию в PyTorch?
    Anonymous » » в форуме Python
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»