Цикл через базу данных в преобразовании скрипта SSIS
Я пытаюсь использовать задачу сценария SSIS для передачи значений из таблицы в текстовый файл. Текстовый файл будет использоваться для печати чеков, поэтому он отформатирован как таковой. У меня есть временная таблица проверки, которая поступает в компонент преобразования сценария. Пакет завершается успешно, но в текстовый файл сохраняется только последняя строка из базы данных. Я исследовал, как перебирать каждую строку, и, похоже, все больше запутался. Я не уверен, нужно ли мне настраивать ввод / вывод в пакете или создавать переменные для вызова в сценарии. Я новичок в C #, так что это тоже не помогает. Будем очень признательны за любые советы / рекомендации. Ниже приведен код, который у меня есть в настоящее время для достижения необходимого формата. Мне нужно перебрать базу данных и применить форматирование для каждой печатаемой строки / чека.
public override void Input0_ProcessInputRow(Input0Buffer Row) { StreamWriter sw = new StreamWriter("c:\\test.txt"); sw.WriteLine("XXXXXXXXXXXX" + "XXXX".PadLeft(52) + Row.CheckID + "\r" + "\nXXXXXXXXXXXXXX" + "XXXXXX\r".PadLeft(27) + "\nP. O. BOX XXXX" + "24 HOUR BANKING".PadLeft(36) + "XX-XXXX".PadLeft(27) + "\r" + "\nXXXXXXXX, XX XXXXX" + ",".PadLeft(17) + "-------\r".PadLeft(42) + "\n " + "XXXX\r".PadLeft(71) + "\n ".PadRight(50) + Row.FName + " " + Row.LName + " ".PadLeft(19) + DateTime.Now.ToString("MMM dd yyyy").ToUpper() + "\r" + "\n " + "\r" + "\n " + " \r" + "\n ".PadRight(8) +"**XXX DOLLARS AND 00/100**" +" ".PadLeft(37)+Row.Amount + "\r" + "\n " + "\r" + "\n " + " \r" + "\n ".PadRight(11)+Row.VendorName1 + "\r" + "\n ".PadRight(11)+Row.VendorName2 + "\r" + "\n ".PadRight(11)+Row.VendorName3 + "\r" + "\n ".PadRight(11)+Row.VendorAddress1 + "\r" + "\n ".PadRight(11)+Row.VendorAddress2 + "\r" + "\n ".PadRight(11)+Row.VendorCity+","+ " "+Row.VendorState+" ".PadLeft(4)+" "+Row.VendorZip + "\r" + "\n " + " \r" + "\n ".PadRight(11)+"XXXX"+Row.CheckID + " "+"XXXXXX"+" "+"XXXXXXXXXX" + "\r" + "\n " + " \r" + "\r" + "\n " + " \r" + "\r" + "\n " +"XXXX-".PadLeft(71) + Row.CheckID + "\r" + "\n " + " \r" + "\r" + "\n" + DateTime.Now.ToString("MM/dd/yyyy") + " ".PadLeft(2) + Row.ClientID + " ".PadLeft(3) + " ".PadLeft(3) + Row.FName + " " + Row.LName + " ".PadLeft(9) + Row.TCDesc1 + " ".PadLeft(29) + Row.Amount + "\r" + "\n " + " ".PadLeft(39) + "TCDesc2" + Row.TCDesc2 + "\r" + "\n " + " ".PadLeft(39) + "TCDesc3" + Row.TCDesc3 + "\r" + "\n " + " \r" + "\r" + "\n " + " \r" + "\r" + "\n " + " \r" + "\r" + "\n " + " \r" + "\r" + "\n " + " \r" + "\r" + "\n " + " \r" + "\r" + "\n " + " \r" + "\r" + "\n " + " \r" + "\r" + "\r" + "\r" + "\r" + "\r" + "\n" + " ".PadLeft(81) + Row.ClientID + " ".PadLeft(9) + Row.FName + " " + Row.LName; sw.Close(); }
Что я уже пробовал:
Я попытался использовать задачу Execute SQL и контейнер foreach Loop, но он продолжал ошибаться. Не могу вспомнить конкретную ошибку.
Dave Kreskowiak
Ну, без ошибки, это в значительной степени догадки, чтобы попытаться помочь вам.