Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
 SqlDependency и проблемы с подпиской  [new]
kikipumpa
Member

Откуда:
Сообщений: 31
Добрый день.
Есть две базы. Одну создал сам, другая уже существующая, используется в другой системе.
В обеих базах включил отслеживание таблиц, и в своём приложении подписываюсь на изменения с помощью SqlDependency.
Со своей базой проблем нет, всё работает, но при попытке подписаться на вторую сразу срабатывает onChange с параметрами:
  • e.Info = Options (Параметр SET не задан необходимым образом во время подписки.),
  • e.Source = Statement (Инструкция Transact-SQL не поддерживает уведомления; например, выполняется инструкция SELECT, для которой не могут генерироваться уведомления, или инструкция, отличная от SELECT.),
  • e.Type = Subscribe (Не удалось создать подписку на уведомление. Для определения причины неудачи используйте входящий в состав объекта SqlNotificationEventArgs элемент SqlNotificationInfo.)
Инструкция, которую выполняю для подписки
SELECT ID, Name FROM dbo.Comps

Для обеих баз делаю всё одинаково, кроме строки подключения и названия таблицы.
Почему так происходит?
Что за параметр SET? где его задавать и как понять, какие параметры нужны?
Уже неделю ковыряю, но никак не могу в толк взять куда вообще смотреть и что делать.
23 апр 21, 15:28    [22313252]     Ответить | Цитировать Сообщить модератору
 Re: SqlDependency и проблемы с подпиской  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1780
kikipumpa,


SqlDependency использует ServiceBroker в качестве службы доставки сообщений.
Данные сообщений формируются в виде xml-сообщений, а для работы с типом xml требуются специфичные настройки среды SET.

такие как set quoted_identifier on;
проверьте на вашей БД данную настройку, также она переопределяется в зависимости от драйвера использующегося для подключения к сиквел серверу.
24 апр 21, 01:58    [22313489]     Ответить | Цитировать Сообщить модератору
 Re: SqlDependency и проблемы с подпиской  [new]
kikipumpa
Member

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

Я правильно понимаю, что эти настройки можно передавать в инструкции для подписки?
И где можно узнать весь список необходимых параметров?
Установка set quoted_identifier on ситуацию не изменила.
26 апр 21, 09:42    [22314254]     Ответить | Цитировать Сообщить модератору
 Re: SqlDependency и проблемы с подпиской  [new]
kikipumpa
Member

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

Спасибо за наводку.
Нашёл список необходимых параметров тут
Нужны:

ANSI_NULLS ON

ANSI_PADDING ON

ANSI_WARNINGS ON

CONCAT_NULL_YIELDS_NULL ON

QUOTED_IDENTIFIER ON

NUMERIC_ROUNDABORT OFF

ARITHABORT ON
26 апр 21, 15:15    [22314510]     Ответить | Цитировать Сообщить модератору
Все форумы / WinForms, .Net Framework Ответить