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

Откуда:
Сообщений: 19
В папке лежат N .sql файлов, программа циклично выполняет их
(с помощью sqlServer.ConnectionContext.ExecuteNonQuery(. . .))
В лог файл пишу ошибки - вижу N строк "При выполнении инструкции или пакета Transact-SQL возникло исключение."
Почитал - везде пишут про права, но на какие права ругается в данном случае - не понимаю, так как процедуры корректно создаются.
В чем может быть дело?
19 дек 16, 13:03    [20021333]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
o-o
Guest
в файлах-то что?
создание процедур, их выполнение, создание + выполнение?
почему бы не завернуть все выполнение в try..catch с выводом ошибoк в таблицу?
---
какое отношение имеет факт корректного создания процедуры
к правам доступа к объектам внутри нее?
создание процедуры это всего лишь сохранение ее кода в базе.
выполнение это доступ к объектам, а доступа может и не быть
19 дек 16, 13:21    [20021468]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
Владислав Колосов
Member

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

если у Вас возникло какое-то исключение, то у Вас наверняка какая-то ошибка.

автор
В чем может быть дело?

Дело в ошибке.
19 дек 16, 13:34    [20021587]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
Bloodskys
Member

Откуда:
Сообщений: 19
o-o,

Наверное непонятно изъясняюсь :)
В файлах - следующий текст
+
Create Procedure Text_1(2,3,...,n) As
Go
Alter Procedure Text_1 As
Select * From myTable

Когда выполняю программу - в Microsoft SQL Server management Studio мои процедуры видны, если сформировать сценарии чтобы выгрузить эти процедуры - никаких ошибок, проверить содержание процедур - все как написано мной, что-то изменить - пожалуйста.
Тем не менее в логе - "При выполнении инструкции или пакета Transact-SQL возникло исключение.".
19 дек 16, 13:34    [20021589]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
Bloodskys
Member

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

допускаю, что вы не поняли сути вопроса, или же я некорректно его задал, потому спрошу иначе: где искать ошибку?
Часто бывает, что появление конкретной ошибки происходит в 99% случаев из-за одних и тех же грабель, вот и решил, что и в данном случае ответ может лежать на поверхности вроде "поставь галочку там-то" или "пропиши то-то".
19 дек 16, 13:39    [20021628]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
Владислав Колосов
Member

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

проблему сперва требуется локализовать - т.е. найти место и обстоятельства, при которых она возникает. Первый шаг - анализ сообщения об ошибке.
19 дек 16, 13:57    [20021768]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
o-o
Guest
Bloodskys
Create Procedure Text_1(2,3,...,n) As
Go
Alter Procedure Text_1 As
Select * From myTable


т.е. вы не выполняете процедуры, как заявлено в названии вашей темы?
вы всего лишь создаете процедуры, причем они создаются.
так?
19 дек 16, 14:03    [20021819]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
o-o
Guest
и ваше GO тоже зачем-то передаете на исполнение?
19 дек 16, 14:05    [20021829]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
aleks2
Guest
Bloodskys
sqlServer.ConnectionContext.ExecuteNonQuery(. . .))


Bloodskys
В файлах - следующий текст
Create Procedure Text_1(2,3,...,n) As
Go
Alter Procedure Text_1 As
Select * From myTable


sqlServer.ConnectionContext.ExecuteNonQuery НИЧЕГО не ведает о Go.
Это исключительная фишка SSMS.
19 дек 16, 14:08    [20021852]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
Bloodskys
Member

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

Работаю на предприятии на позиции младшего разработчика, сказали использовать именно ExecuteNonQuery(), потому что он умеет работать с Go.
Т.е. это требование "сверху".

o-o,
Да, процедуры создаются.
19 дек 16, 14:15    [20021919]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
aleks2
Guest
Bloodskys
aleks2,

Работаю на предприятии на позиции младшего разработчика, сказали использовать именно ExecuteNonQuery(), потому что он умеет работать с Go.
Т.е. это требование "сверху".


Даже, если твой начальник скажет, что Земля - плоская. Ничего не изменится.
19 дек 16, 14:20    [20021975]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
Bloodskys
Member

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

То есть вероятно проблема кроется в "Go"?
В таком случае почему несмотря на это процедуры создаются?
И куда копать?
19 дек 16, 14:24    [20022013]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
Bloodskys
Member

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

только что нашел несколько утвержденных "лучших" ответов на stackoverflow, где пишут, что скрипты с "Go" нужно не иначе как через ExecuteNonQuery выполнять. Тоже врут? Тогда где правда? :-)
19 дек 16, 14:29    [20022051]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
aleks2
Guest
Bloodskys
aleks2,

То есть вероятно проблема кроется в "Go"?
В таком случае почему несмотря на это процедуры создаются?
И куда копать?


1. Потому, что MS SQL выполняет все "правильные" инструкции и тормозит на неправильном GO.

2. Продемонстрируй начальнику, что "Go не работает", запуском тривиального скрипта.

3. Копать под начальника.
19 дек 16, 14:31    [20022071]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
aleks2
Guest
Bloodskys
aleks2,

только что нашел несколько утвержденных "лучших" ответов на stackoverflow, где пишут, что скрипты с "Go" нужно не иначе как через ExecuteNonQuery выполнять. Тоже врут? Тогда где правда? :-)


Дык, дураков то много.
19 дек 16, 14:32    [20022083]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
iljy
Member

Откуда:
Сообщений: 8711
aleks2
Это исключительная фишка SSMS.


Не только, sqlcmd его тоже знает. Но в целом да, передать его на исполнение серверу не удастся.
19 дек 16, 14:33    [20022097]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
aleks2
Guest
Умные - целые библиотеки пишут.
http://haacked.com/archive/2007/11/04/a-library-for-executing-sql-scripts-with-go-separators-and.aspx/
19 дек 16, 14:35    [20022117]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
Bloodskys
Member

Откуда:
Сообщений: 19
aleks2
Bloodskys
aleks2,

То есть вероятно проблема кроется в "Go"?
В таком случае почему несмотря на это процедуры создаются?
И куда копать?


1. Потому, что MS SQL выполняет все "правильные" инструкции и тормозит на неправильном GO.

2. Продемонстрируй начальнику, что "Go не работает", запуском тривиального скрипта.

3. Копать под начальника.

Только что создал процедуры без "Go" - та же ошибка.
Подозреваю дело не в "Go".
19 дек 16, 14:35    [20022125]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7870
Значит автор "не заметил" сообщение о синтаксической ошибке.
19 дек 16, 14:37    [20022144]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
iljy
Member

Откуда:
Сообщений: 8711
Bloodskys
Только что создал процедуры без "Go" - та же ошибка.


А та же - это какая?
19 дек 16, 14:37    [20022145]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7870
iljy
Bloodskys
Только что создал процедуры без "Go" - та же ошибка.


А та же - это какая?


Этого мы не увидим, судя по всему...
19 дек 16, 14:37    [20022149]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
Bloodskys
Member

Откуда:
Сообщений: 19
iljy
Bloodskys
Только что создал процедуры без "Go" - та же ошибка.


А та же - это какая?

Обратился на форум с единственной ошибкой: При выполнении инструкции или пакета Transact-SQL возникло исключение.
Или это была придирка к слову "ошибка"? :)
19 дек 16, 14:38    [20022161]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
iljy
Member

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

нет, это был тонкий намек, что текст исключения неплохо бы продемонстрировать, и желательно дословно, а не в вольном пересказе.
19 дек 16, 14:40    [20022189]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Bloodskys
iljy
пропущено...


А та же - это какая?

Обратился на форум с единственной ошибкой: При выполнении инструкции или пакета Transact-SQL возникло исключение.
Или это была придирка к слову "ошибка"? :)

вы к доктору приходите и из за двери кричите "Болит" и ждёте диагноз?
19 дек 16, 14:41    [20022192]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при программном выполнении процедуры  [new]
aleks2
Guest
Bloodskys
iljy
пропущено...


А та же - это какая?

Обратился на форум с единственной ошибкой: При выполнении инструкции или пакета Transact-SQL возникло исключение.
Или это была придирка к слову "ошибка"? :)


Это не ошибка MS SQL. Это сообщение .NET для слабых мозгом.

ЗЫ. Профайлер запусти. Хотя это слишком тяжелая артиллерия.
19 дек 16, 14:42    [20022204]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить