Триггер не выдает сообщения об ошибке

Jaxtor

Господа! Помогите, если можете:Триггер не выдает сообщения при
<pre class="prettyprint linenums">RaisError</pre>
:
<pre class="prettyprint linenums">Create Trigger cl_Questions_ITrig On dbo.cl_Questions For Insert As RAISERROR('Trigger has been fired!', 16, 1)</pre>
Хотя вставка в таблицу происходит, триггер не выдает сообщения в программу.Перехвата Exception'a у меня здесь нет.А при запуске на INSERT через QueryAlalyzer все работает правильно. Thanks
24 ответа

Jaxtor

Хотя вставка в таблицу происходит, триггер не выдает сообщения в программу.
Вы весь текст триггера привели? Или та еще что-то есть. SET NOCOUNT ON в самом начале триггера поставьте. На чем клиент?


Jaxtor

DELPHI.Доступ через ADO


Jaxtor

<pre class="prettyprint linenums">SET NOCOUNT ON </pre>
не помогает.


Jaxtor

все должно работать!!! каким образом запрос на вставку с клиента отправляете? Что на сервер за инструкция уходит и как триггер отрабатывает смотрели?


Jaxtor

Инструкция такая поступает на сервер:
<pre class="prettyprint linenums">exec dbo.clsp_QuestionInsert '', 881, 20706, '', 'xxx-xx-xx, xxx-xx-xx, xxx-xx-xx(бух),xxx-xx-xx(ф), xxx-xx-xx(Алексей), xxx-xx-xx общ. отдел', 636, 464, 1, 'TEST_11', NULL, NULL, NULL, NULL, 0</pre>


Jaxtor

Что выдает:
<pre class="prettyprint linenums">SELECT OBJECTPROPERTY(OBJECT_ID('cl_Questions_ITrig'), 'ExecIsTriggerDisabled')</pre>
Инструкция такая поступает на сервер:
Ну так отрабоку тригера видно в профайлере?


Jaxtor

<pre class="prettyprint linenums">0 - No column name (1 row(s) affected)</pre>


Jaxtor

А в процедуре несколько инструкций? В ней SET NOCOUNT ON есть?


Jaxtor

raiserror() with seterrorreturnend -- trigger


Jaxtor

<pre class="prettyprint linenums">set nocount on</pre>
у меня не было в процедуре...И похоже из-за этого программа не так работала!Спасибо за помощь, очень Вам благодарен.


Jaxtor

Да нет все у вас работало нормально


Jaxtor

А все-таки все равно ничего не работает ....рано я сказал спасибо.


Jaxtor

А все-таки все равно ничего не работает ....
Ну, тогда подробней описываете ваше ничего....


Jaxtor

set nocount onу меня не было в процедуре...И похоже из-за этого программа не так работала!
Вооб ще то и в триггер не мешает поставить этот set nocount on.


Jaxtor

При установке SET NOCOUNT ON в SP стало выдаваться сообщение:Warning: Null value is eliminated by an aggregate or other SET operation.


Jaxtor

Вот он триггер:
<pre class="prettyprint linenums">On dbo.cl_Questions For Insert As set nocount on RAISERROR('Trigger has been fired!', 16, 1)</pre>
У меня INSERT делается в сериализуемой транзакции...Может и это как-то влияет?


Jaxtor

Так, и в процедуре и в триггере SET поставили. Как с клиента вызов идет?
Warning: Null value is eliminated by an aggregate or other SET operation.
Это предупреждение, что пустые значения не были учтены при аггрегировании.


Jaxtor

Дело в том, что в моем запросе еще вызываются SP... через Execв сериализуемой транзакции.P.S.А зачем клиенту видеть этот Warning message?Поэтому условие SET NOCOUNT ON в SP использовать мне не особо привлекает.


Jaxtor

Ну, если нам не веришь, то тогда FAQ


Jaxtor

а клиент этот Warning message и не увидит.


Jaxtor

А как же этот Warning я вижу?Через Client ведь!


Jaxtor

Пользователи же не в QA работают, так ведь?а в рекордсетах этих сообщений не будет.


Jaxtor

Повторяю, этот Warning message выдает моя программа написанная на DELPHI!:)


Jaxtor

<pre class="prettyprint linenums">Повторяю, этот Warning message выдает моя программа написанная на DELPHI!:)</pre>
Ну, дык и отсеки в дэлфях в эксепшенах все варнинги...