Я использую 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
Компонент сценария SSIS, используемый в качестве источника, не записывает строки в назначение SQL ⇐ C#
Место общения программистов C#
1721148493
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();
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78755813/ssis-script-component-used-as-source-does-not-write-rows-to-sql-destination[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия