Я прошу у вас совета о том, как правильно настроить и запустить механизм оповещения для базы данных MS SQL Server 2008 с помощью FireDac (я работаю над Delphi XE7).
Соответствующий класс / компонент TFDEventAlerter находится там.
До сих пор я мог запускать оповещения, но я получал уведомление только во время «вставок» в таблицу. Команда update sql работает лучше, но предупреждение не генерирует.
ОТВЕТ:
Насколько я понимаю, вы хотели бы, чтобы MSSQL сообщал о своей операции самому себе. У меня недавно была похожая задача, и я просто решил проблему, используя уведомления, а не предупреждения.
На практике это выглядит так. Вы создаете свой тип, например, вы создаете сборки:
CREATE ASSEMBLY kbudpNotification
AUTHORIZATION [dbo]
FROM
...
WITH PERMISSION_SET = UNSAFE
GO
Здесь, конечно, при создании из какого-нибудь нормального редактора базы данных (например, EMS SQL Manager) выберите DLL, написанную на C #,
а затем введите:
CREATE TYPE dbo.kbudpNotification
EXTERNAL NAME kbudpNotification.kbudpNotification
GO
и только в той процедуре / триггере вы вызываете:
@ubr BIT = kbudpNotification::taskStatus();
как следует из названия, мой kbudpNotification.dll отправляет информацию на определенный порт udp, в то время как taskStatus (), конечно же, является именем функции в DLL. Немного работы, но работает;)