Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SSIS  [new]
lex452
Member

Откуда:
Сообщений: 595
Пытаюсь загрузить данные из файла в таблицу, используя пакет SSIS данные изначально обрабатываю с помощью скрипта и далее заношу через OLE DB в таблицу.

Скриптом проверяю входной файл построчно и если все устраивает возвращаю Output0Buffer с корректными строками

Это скрипт:

CLASS Row
{
int RowID ;

DateTime Date;
bool result;
}
public Row convert (string str)
{
string[] strMas=str.Split('\t')
Row row=new Row();
try
{
row.RowID =Convert.ToInt32(strMas[0]);

row.Date=Convert.ToDateTime(strMas[1]);
row.Result=true;
}
catch()
{
row.Result=false;
}
return row;
}
public override void CreateNewOutputRows()
    {
 StreamReader sr=new StreamReader("FILENAME.TXT")
while(!sr.EndOfStream)
{
       Row newRow=convert (sr.ReadLine());
        if(newRow.Result)
       {
            Output0Buffer.AddRow();
            Output0Buffer.RowID = newRow.RowID ;
           
            Output0Buffer.Date= newRow.AccountName ;
      }

}
      
        
    }


скрипт часто отваливается на этапе Output0Buffer.AddRow();
с ошибкой

System.Runtime.InteropServices.COMException was caught
Message=Exception from HRESULT: 0xC0047020
Source=Microsoft.SqlServer.DTSPipelineWrap
ErrorCode=-1073450976

целый день убил, не могу понять от чего она возникает
В результирующей таблице типы данных,
bigint и smalldatetime
в буфере DT_I8 и DT_DATE

Не возьму в толк как может возникать ошибка до того как я записал в буфер очередную строку

PS за возможные ошибки в коде не ругайте, писал из головы. Исходников нет под руками
12 ноя 15, 19:50    [18408650]     Ответить | Цитировать Сообщить модератору
 Re: SSIS  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35853
Блог
-1073450976=DTS_E_REFUSEDFORSHUTDOWN

возможно, памяти не хватает
12 ноя 15, 22:16    [18409357]     Ответить | Цитировать Сообщить модератору
 Re: SSIS  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 9161
Может буфер не успевает освобождаться?
13 ноя 15, 11:27    [18411045]     Ответить | Цитировать Сообщить модератору
 Re: SSIS  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4974
lex452,

1) Зайдите в Advanced Editor и проверьте типы выходных колонок из вашего компонента
2) Проверьте маппинг на линии связке
3) Проверьте маппинг в блоке получателе

Где-то вы должны найти нестыковку.

Попробуйте удалить связь и добавить её заново.
13 ноя 15, 12:08    [18411336]     Ответить | Цитировать Сообщить модератору
 Re: SSIS  [new]
lex452
Member

Откуда:
Сообщений: 595
Проблема решена. Просто колонка с датой наверно была не корректная, в том плане что я вставлял данные в тип smalldatetime, а он поддерживает даты до 2076.06.06 и при большей дате выпадет ошибка. Вся проблема ситуации в том что реально ошибка не в скрипте и отладке не поддаётся. Ошибка эта на этапе загрузки данных в таблицу. Надеюсь кому нибудь это пригодится
13 ноя 15, 12:40    [18411588]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить