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

Откуда:
Сообщений: 96
Добрый вечер
Прошу вашей помощи, уже не знаю в каком направлении искать..

Ситуация следующая. В SQL Server Data tools были созданы несколько пакетов, суть задач которых -открытие,обновление,закрытие файла Ексель через скрипт на С-шарп, далее подсчет строк, и если не 0 - оправка письма с вложением - этим файлом Excel
Все выполнялось без проблем и при запуске в проводнике, и при выполнении агентом (агент пока работает от имени локальной системы)
Но неделю назад установил VS 2010 Ultimate (не факт что через это, но для полной информации)
Не помню, пересоздавал ли я в нем пакеты dtsx, или нет
но теперь возникла проблема - пакеты в проводнике и далее запускаются без проблем
А в агенте - ни один. Ошибка ссылается именно на ту часть пакета, что отвечает за ексель - часть C#
Вот текст ошибки:
Выполняется от имени пользователя: AYS\a.kr.Программа выполнения пакетов Microsoft (R) SQL Server Version 11.0.5058.0 for 64-bit (C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены. Начало: 21:13:57 Ошибка: 2015-09-28 21:13:59.52 Код: 0x00000001 Источник: Excel открытие,обновление связей, закрытие Описание: Адресат вызова создал исключение. Конец ошибки DTExec: завершено исполнение пакетаDTSER_FAILURE (1). Начало: 21:13:57 Готово: 21:13:59 Прошло:1.671 секунд. Не удалось выполнить пакет. Шаг завершился с ошибкой.

Не могу точно отследить с чем связана ошибка. но вряд ли с правами. может с битностью каких-то библиотек, вызванной установкой VS Ult?.. Подскажите, пожалуйста, что делать, где копать? Вручную запускаю пакеты ..
29 сен 15, 00:27    [18207564]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
Glory
Member

Откуда:
Сообщений: 104764
fury_fury
Источник: Excel

fury_fury
Microsoft (R) SQL Server Version 11.0.5058.0 for 64-bit

И какой драйвер использует ваш пакет для доступа к Excel ?
29 сен 15, 08:08    [18207800]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4098
В студии есть возможность пошаговой отладки пакета.
Брекпойнты можете ставить даже в код на сишарп.
Используйте это.
Так сможете понять где ломается.
Насчет прав все-таки проверьте - агент работает под другой учеткой.
29 сен 15, 09:34    [18208014]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4364
Проверьте битность драйвере и сервера, где агент, включить вербоз сообщения у пакета.
29 сен 15, 16:38    [18210563]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
fury_fury
Member

Откуда:
Сообщений: 96
Glory
fury_fury
Источник: Excel

fury_fury
Microsoft (R) SQL Server Version 11.0.5058.0 for 64-bit

И какой драйвер использует ваш пакет для доступа к Excel ?


SQL и Office 64.
Но VS 32 и мне пришлось установить AccessDatabaseEngine_32 чтобы получить доступ к ексель-файлу

Ошибка на этапе скрипта C# и именно при выполнении агентом.
В пакете скрипт С (открытие, обновление,сохранение и закрытие файла ексель), проверка на количество строк (подключение к этому же екселю, подсчет строк и запись результата в переменную) и если строк не 0, происходит отправка письма
То есть, ошибка не на этапе чтения с екселя, а на первом - открытии
Если бы была ошибка на уровне VS или DTExecUI отследил бы по сообщениям. Просто не знаю как включить вербоз сообщения у пакета
Добавлял Брекпойнты в VS. Проходит без ошибок

Добавил сам пакет. Если в DTExecUI работает, то скорее всего либо права либо драйвер. Права - локальная система при запуске службы. С драйверами Майкрософт вообще запутали ситуацию..

К сообщению приложен файл (Package.dtsx - 70Kb) cкачать
29 сен 15, 22:39    [18212296]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
fury_fury
Member

Откуда:
Сообщений: 96
Проверил комментированием, проблема в этих строках C#:
excelApp.Visible = false;
            excelBook = excelApp.Workbooks.Open(@"C:\Excel_temp\ext\NULL_in_DateW_Table_Curator.xlsx");
            foreach (Excel.Worksheet excelSheet in excelBook.Worksheets)
            {
                foreach (Excel.WorkbookConnection cnn in excelBook.Connections)
                {
                    cnn.OLEDBConnection.BackgroundQuery = false;
                }
            }
            excelBook.RefreshAll();
            excelBook.Save();
            excelBook.Close(0);
            excelApp.Quit();

Пакет, запущенный агентом, не может выполнить эти строки. Этот ексель файл подключается через хранимку к sql server. Вряд ли вопрос с драйвером.. Скорее с правами.
Помогите пожалуйста решить проблему. Уже вроде все способы перепробовал, ну ничего вообще не помогает
30 сен 15, 00:21    [18212466]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
Glory
Member

Откуда:
Сообщений: 104764
fury_fury
SQL и Office 64.

Вопрос был не про сервер или оффис
Вопрос был , про драйвер, который использует ваш код/пакет для доступа к Excel

fury_fury
Пакет, запущенный агентом, не может выполнить эти строки. Этот ексель файл подключается через хранимку к sql server. Вряд ли вопрос с драйвером.. Скорее с правами.
Помогите пожалуйста решить проблему. Уже вроде все способы перепробовал, ну ничего вообще не помогает

Ну так получите вменяемое сообщение об ошибке.
Чтобы не гадать в драйверах лм проблема или в правах или еще в чем то
30 сен 15, 08:13    [18212705]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
fury_fury
Member

Откуда:
Сообщений: 96
Glory
Вопрос был не про сервер или оффис
Вопрос был , про драйвер, который использует ваш код/пакет для доступа к Excel


Подключал библиотеку MICROSOFT.OFFICE.INTEROP.EXCEL.DLL
Она почему-то в Program Files (86) хотя офис 64. Но работало

Glory
Ну так получите вменяемое сообщение об ошибке.
Чтобы не гадать в драйверах лм проблема или в правах или еще в чем то


Glory, Вы абсолютно правы. Уже подсказывали ловить сообщения с пакета, когда он выполняется в агенте.
Но я не могу найти как включить вербоз сообщения у пакета. Гугл про такой вопрос отправляет на сайты неврозов)
Подскажите, пожалуйста, в этом. Дальше может сам разберусь по сообщениям
30 сен 15, 09:58    [18213013]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
Glory
Member

Откуда:
Сообщений: 104764
fury_fury
Подключал библиотеку MICROSOFT.OFFICE.INTEROP.EXCEL.DLL
Она почему-то в Program Files (86) хотя офис 64. Но работало

Да что вы все на оффис киваете ?
Вы не в курсе, что один и то же пакет можно запускать как в 32бит режиме, так в 64бит режиме ?

fury_fury
Но я не могу найти как включить вербоз сообщения у пакета. Гугл про такой вопрос отправляет на сайты неврозов)
Подскажите, пожалуйста, в этом. Дальше может сам разберусь по сообщениям

надо читать в хелпе про ключи запуска "Программа выполнения пакетов Microsoft (R) SQL Server Version 11.0.5058.0 for 64-bit (C) "
А не в Гугле искать перековерканные на руский англоязычные термины
30 сен 15, 11:03    [18213415]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
fury_fury
Member

Откуда:
Сообщений: 96
Glory
fury_fury
Подключал библиотеку MICROSOFT.OFFICE.INTEROP.EXCEL.DLL
Она почему-то в Program Files (86) хотя офис 64. Но работало

Да что вы все на оффис киваете ?
Вы не в курсе, что один и то же пакет можно запускать как в 32бит режиме, так в 64бит режиме ?

fury_fury
Но я не могу найти как включить вербоз сообщения у пакета. Гугл про такой вопрос отправляет на сайты неврозов)
Подскажите, пожалуйста, в этом. Дальше может сам разберусь по сообщениям

надо читать в хелпе про ключи запуска "Программа выполнения пакетов Microsoft (R) SQL Server Version 11.0.5058.0 for 64-bit (C) "
А не в Гугле искать перековерканные на руский англоязычные термины


Glory, запускаю в режиме 32 в агенте. ссылается на ошибка в первом посте. Если запускаю в режиме 64 - ошибка про отсутствие необходимого драйвера уже на втором этапе (чтение с файла и подсчет строк). Его и нет в действительности.

До ошибки запускал в 64 и без проблем было.
Ок, буду искать по ключу. Спасибо

К сообщению приложен файл. Размер - 147Kb
30 сен 15, 12:19    [18213994]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7383
fury_fury,

а офис вообще здесь причем? Вы что-то не так делаете, он не требуется для импорта.
30 сен 15, 12:58    [18214303]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
fury_fury
Member

Откуда:
Сообщений: 96
Владислав Колосов
fury_fury,

а офис вообще здесь причем? Вы что-то не так делаете, он не требуется для импорта.

Может быть
В Ексель-файле в подключениях прописана хранимка импорта с SQL (Чтобы сохранить форматирование полей)
Пакет DTSX:
1) С# открытие, обнова, сохранение и закрытие этого файла
2) OLE DB - открытие этого же файла, считывание количества строк и запись в переменную
3) T-SQL - если в переменной не 0 - отправка письма с вложением - этим же файлом

Второй этап планирую позже перенести на уровень C#
Но в результате - при выполнении пакета в DTExecUI - все норм.А при выполнении агентом - ошибка на первый пункт пакета
И никакой внятной описаловки ошибки.

Это все работало, до момента установки Ultimate версии VS (другого подозрения не могу найти)
30 сен 15, 14:08    [18214708]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
Glory
Member

Откуда:
Сообщений: 104764
fury_fury
И никакой внятной описаловки ошибки.

Потому что вы не указали создавать подробный лог
И пока вы этот лог не получите лучше не надо постить одну и туже информацию
30 сен 15, 14:14    [18214748]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7383
fury_fury,

как-то замысловато, если импорт производится макросом Excel, то этот же макрос может и письмо отправить. Запускать же можно планировщиком заданий windows или руками. Возможно у вас несовместимость битность офиса, пакета и сервера. Сократите количество звеньев цепи.
30 сен 15, 14:15    [18214754]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
o-o
Guest
fury_fury
Но я не могу найти как включить вербоз сообщения у пакета.

Enable Logging for Package Execution on the SSIS Server
30 сен 15, 15:36    [18215412]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
ГуЗы
Guest
Владислав Колосов
fury_fury,

как-то замысловато, если импорт производится макросом Excel, то этот же макрос может и письмо отправить. Запускать же можно планировщиком заданий windows или руками. Возможно у вас несовместимость битность офиса, пакета и сервера. Сократите количество звеньев цепи.

Замысловато, точно!
Все можно сделать средствами dts: и данные получить и почту отправить. И никаких заморочек. Но к теме вопроса это не относится никоим образом. Так что извиняйте за offtop.
30 сен 15, 16:23    [18215760]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
fury_fury
Member

Откуда:
Сообщений: 96
ГуЗы
Владислав Колосов
fury_fury,

как-то замысловато, если импорт производится макросом Excel, то этот же макрос может и письмо отправить. Запускать же можно планировщиком заданий windows или руками. Возможно у вас несовместимость битность офиса, пакета и сервера. Сократите количество звеньев цепи.

Замысловато, точно!
Все можно сделать средствами dts: и данные получить и почту отправить. И никаких заморочек. Но к теме вопроса это не относится никоим образом. Так что извиняйте за offtop.


если средствами dts, то проблемы с форматированием. Так и было первоначально
30 сен 15, 17:21    [18216299]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7383
fury_fury,

если совсем без OLE excel и с форматированием, то можно использовать отчет reporting services для формирования файла.
30 сен 15, 18:24    [18216700]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
fury_fury
Member

Откуда:
Сообщений: 96
Запустил за сервере процедуру xp_cmdshell
И таки да ошибка через отсутствие доступа
не понятно. что поменялось. Может в самом проекте пакета нужно настроить доступ
Что делать дальше? Права агенту предоставляются разве не при старте службы?

Прошу прощения, что приходится отвлекать. Но я уже так много времени и усилий потратил на этот проект. Хочется получить отдачу (и моральное удовлетворение :) )

Чувствую, что решение где-то рядом..)

К сообщению приложен файл. Размер - 122Kb
30 сен 15, 21:32    [18217303]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
fury_fury
Member

Откуда:
Сообщений: 96
В общем, проблема с правами. Агент не имеет прав через скрипт C# выполнять действия с файлом
Нашел такую же проблему
На вкладке Безопасность уже для "Все" открыл полный доступ на папку с файлом ексель. Никакого результата. не понимаю, что за права в учетки Агента.
Проще на С уже написать скрипт на выполнение этого пакета и на штатный задачник повесить

Может кто подскажет, как дать права агенту на открытия файла. Не понимаю. или я туплю, или бока в системе
30 сен 15, 23:08    [18217569]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
Glory
Member

Откуда:
Сообщений: 104764
fury_fury
Может кто подскажет, как дать права агенту на открытия файла.

Права есть не у Агента, а у учетной записи, под которой вы задали ему запускаться
Вы что не видите поле "Выполнить как" ?

fury_fury
И таки да ошибка через отсутствие доступа

Какой нафиг доступ ?
Описание: Невозможно загрузить пакет как XML, так как у пакета отсутствует допустимый формат XML.
1 окт 15, 08:43    [18218124]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
fury_fury
Member

Откуда:
Сообщений: 96
Glory, не сердитесь) Я пока только осваиваю. Эта тема мне интересна, но не все на практике проходит легко

Ну, если форма XML, созданный VS под эту версию SQL, не подходит, тогда прям мистика) Учитывая что в системе выполняется

По поводу учетки, с которой запускается, у меня и выбор то не велик))

К сообщению приложен файл. Размер - 130Kb
1 окт 15, 09:35    [18218357]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
Glory
Member

Откуда:
Сообщений: 104764
fury_fury
Я пока только осваиваю.

Вы осваиваете чтение что ли ?
Почему тогда с середины лога, а не с начала ?

fury_fury
) Учитывая что в системе выполняется

Выполняется "что" ? XML файл ? Через утилиту запуска пакетов ?

fury_fury
По поводу учетки, с которой запускается, у меня и выбор то не велик))

Причем тут выбор ? Нужно просто знать имя учетной записи.
Чтобы точно знать, где и какие права она (не) имеет
1 окт 15, 09:38    [18218377]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30701
fury_fury
По поводу учетки, с которой запускается, у меня и выбор то не велик))
У вас выбор из двух вариантов:
1. Узнать, под какой учётной записью выполняется работа с файлом, и положить файл туда, где эта запись имеет необходимые права, либо дать этой записи права на этот файл.
2. Изменить учтную запись на ту, у которой есть рпава на нуджные вам папки/файлы.
fury_fury
В общем, проблема с правами. Агент не имеет прав через скрипт C# выполнять действия с файлом
Нашел такую же проблему
На вкладке Безопасность уже для "Все" открыл полный доступ на папку с файлом ексель.
По логу - у вас не доходит дело до выполнения пакета, так что можно вопросы с экселем, драйверами и правами пока пропустить.

fury_fury
Ну, если форма XML, созданный VS под эту версию SQL, не подходит, тогда прям мистика

Да, там всё очень чувствительно с версиями.

А какая версия сиквела у вас, какая версия студии, как вы всё это запускали (когда из проводника) - на сервере или где?
1 окт 15, 09:52    [18218444]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по пакетам DTSX  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4098
fury_fury
Может кто подскажет, как дать права агенту на открытия файла.

Самый простой вариант (не самый правильный) запускать джоб от своего имени.
От ваего аккаунта же он работает?
1 окт 15, 10:12    [18218534]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить