powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Уведомление клиентов об изменениях на сервере
38 сообщений из 38, показаны все 2 страниц
Уведомление клиентов об изменениях на сервере
    #39852252
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!

Вопрос несколько потрепан, но найти навскидку удобоваримое и простое решение по сабжу не удалось.
Итак, что имеем. Есть двухуровневое приложение. Предположим, это некий корпоративный календарь. У каждого пользователя есть WinForms приложение. С помощью которого можно создавать события в корпоративном календаре. Пользователи могут руками обновить имеющиеся события календаря. Могут создать новое событие. Не обязательно средствами своего приложения (так получилось :( ). Т.е. единственная точка, в которой известно о создании нового события - это некая хранимая процедура на сервере.
И вот - возникает вопрос. Как на стороне SQL Server можно сгенерировать некое уведомление о создании нового события и передать это уведомление для всех подключенных клиентов?
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39852255
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenko,

автори передать это уведомление для всех подключенных клиентов?
сразу в мозг? или другие варианты?
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39852257
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39852261
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoКак на стороне SQL Server можно сгенерировать некое уведомление о создании нового события и передать это уведомление для всех подключенных клиентов?
Для этого обычно используется трехзвенка, чтобы уведомления рассылал сервер приложений.
В двухзвенке на стороне WinForms-приложения делаете бесконечный пинг, который раз в N секунд/минут/часов вызывает ХП, проверяющую, нет ли для текущего пользователя новых уведомлений. Если есть - показывает.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39852264
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKVadim Romanenko,

автори передать это уведомление для всех подключенных клиентов?
сразу в мозг? или другие варианты?

Нет, пока чипы не вживляем, а прямая коммуникация тудой - вроде бы только на совести экстрасенсов :)

Под клиентами подразумевается клиентское приложение
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39852266
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MinamotoVadim RomanenkoКак на стороне SQL Server можно сгенерировать некое уведомление о создании нового события и передать это уведомление для всех подключенных клиентов?
Для этого обычно используется трехзвенка, чтобы уведомления рассылал сервер приложений.
В двухзвенке на стороне WinForms-приложения делаете бесконечный пинг, который раз в N секунд/минут/часов вызывает ХП, проверяющую, нет ли для текущего пользователя новых уведомлений. Если есть - показывает.

Да, я понимаю, что типичное решение - это трехзвенка. Но у нас - двухзвенка.
Бесконечный пинг - уверен, есть более экономичные решения.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39852292
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenko,

читайте по ссылке, которую привёл invm.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39852296
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Romanenko,
если нужны экономичные решения, то надо начать с описания того, что планируется экономить.
а в процессе написания окажется, что собсна предложенный бесконечный пинг техически мало чем отличается от других решений.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39852321
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st,

Возможно, Вы и правы. Чем городить вот этот весь огород с SQL Dependency...

Что есть. Компания, занимающаяся спецтранспортировкой людей. Поездки в день считаются в тысячах. Водители в сотнях. Операторов - десятки. Новая поездка может прийти кучей способов, в том числе через руки операторов. Оператор должен знать, если пришла новая поездка на сегодня в течении, ну, скажем, минуты.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39852360
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoИ вот - возникает вопрос. Как на стороне SQL Server можно сгенерировать некое уведомление о создании нового события и передать это уведомление для всех подключенных клиентов?Взять в штат програмиста.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39852392
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenko,

сервер баз данных - вообще такая штука, которая отвечает на вопросы,но сама из не задаёт. Такова его природа. Это просто бочка с огурцами. Огурцы же в рот сами не запрыгивают? Хотя с галушками был прецедент.
Оповещать должен источник события, а не сервер, все остальное - это вандализм и надругательства.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39852398
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ставите любую очередь, пуляете в нее события с сервера, а клиенты пусть на очередь подписываются и разгребают.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39852940
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей АлексеевичСтавите любую очередь, пуляете в нее события с сервера, а клиенты пусть на очередь подписываются и разгребают.
Смех в том, что у меня и так используется MSMQ. Но с одной стороны, это, вроде как, устаревшая штука. С другой стороны - я пока не вижу как пулять в MSMQ из хранимой процедуры SQL Server
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39852984
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm https://docs.microsoft.com/ru-ru/dotnet/framework/data/adonet/sql/query-notifications-in-sql-server

Пробую реализовать подход SqlDependency. Но почему-то нотификация не приходит. Может кто-то сможет подсказать - почему?

В первую очередь подготовил БД
Код: sql
1.
ALTER DATABASE MyDatabase SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE



При старте формы выполняется код:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
        public frmMain()
        {
                ...
                test();
        }

        private void test()
        {
            AddSQL2Monitor("select [pk_id] from [dbo].[tbDispLeg]");
        }

        public void AddSQL2Monitor(String sqlRequest)
        {
            if (!CanRequestNotifications())
                throw new Exception("App has no SqlClientPermission -> Can't use SQL Dependency");
            AddDataMonitor(sqlRequest);
        }

        private bool CanRequestNotifications()
        {
            // In order to use the callback feature of the
            // SqlDependency, the application must have
            // the SqlClientPermission permission.
            try
            {
                SqlClientPermission perm =
                    new SqlClientPermission(
                    System.Security.Permissions.PermissionState.Unrestricted);

                perm.Demand();

                return true;
            }
            catch
            {
                return false;
            }
        }



Собственно, попытка добавления нотификации:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
        private void AddDataMonitor(String sqlRequest)
        {
            if (connection == null)
            {
                connection = new SqlConnection(GetConnectionString());
            }
            if (connection.State != ConnectionState.Open) connection.Open();
            command = new SqlCommand(sqlRequest, connection);

            SqlDependency.Start(command.Connection.ConnectionString);
            command.Notification = null;
            new SqlDependency(command).OnChange += new OnChangeEventHandler(dependency_OnChange);
            DataTable table = new DataTable();
            using (SqlDataAdapter sqlDA = new SqlDataAdapter(command))
                sqlDA.Fill(table);
        }
    

        private void dependency_OnChange(object sender, SqlNotificationEventArgs e)
        {
            command.Notification = null;
            new SqlDependency(command).OnChange += new OnChangeEventHandler(dependency_OnChange);
            DataTable table = new DataTable();
            using (SqlDataAdapter sqlDA = new SqlDataAdapter(command))
                sqlDA.Fill(table);
        }



Ни одного вызова dependency_OnChange не происходит. Как думаете - что не так?
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39852994
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoС другой стороны - я пока не вижу как пулять в MSMQ из хранимой процедуры SQL Server Posting Message to MSMQ from SQL Server
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39852996
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgVadim RomanenkoС другой стороны - я пока не вижу как пулять в MSMQ из хранимой процедуры SQL Server Posting Message to MSMQ from SQL Server

Да,спасибо, тоже уже нашел эту статью. Навскидку не завелась. Да и пока хочу попробовать через Dependency
Плюс пообщался с коллегами - вроде MSMQ имеет неприятные глюки. Время от времени. Когда очередь зависает и не пропускает сообщения через себя. Так что тут скорее нужно будет переводить проект уж сразу на другие очереди. Ну или может заведется Sql Dependency :)
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39853015
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgVadim RomanenkoС другой стороны - я пока не вижу как пулять в MSMQ из хранимой процедуры SQL Server Posting Message to MSMQ from SQL Server
Нуууу. Так не интересно.
В таком разе можно сразу CLR процедуру написать.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39853024
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggsteralexeyvgпропущено...
Posting Message to MSMQ from SQL Server
Нуууу. Так не интересно.
В таком разе можно сразу CLR процедуру написать.Ага, CLR ещё лучше, они как раз для таких задач.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39853805
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто в курсе - можно ли как-то выдать гранты одновременно для любого юзера, который подключается через Windows Authentication? Для существующих и будущих юзеров? Возможно, есть какой-то подходящий псевдоним? А то что-то нотификации не приходят. И есть подозрение, что проблема в этом моменте:

support.microsoft.comThe user must have the correct client and server side permissions to request and receive notifications.
Users who execute commands requesting notification must have SUBSCRIBE QUERY NOTIFICATIONS database permission on the server.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39853823
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoКто в курсе - можно ли как-то выдать гранты одновременно для любого юзера, который подключается через Windows Authentication? Для существующих и будущих юзеров? Возможно, есть какой-то подходящий псевдоним? А то что-то нотификации не приходят. И есть подозрение, что проблема в этом моменте:

support.microsoft.comThe user must have the correct client and server side permissions to request and receive notifications.
Users who execute commands requesting notification must have SUBSCRIBE QUERY NOTIFICATIONS database permission on the server.А "паблику" не подойдёт?
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39853834
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

Или не подошло, или этот SqlDependency вообще странно работает. Уже несколько раз перебрал и код, и документацию - единственное к чему можно прикопаться, это вот эти вот права для пользователя на сервере.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39853859
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все - я сдался. Не получилось никак. Возможно, кто-то сможет создать работающий прототип - было бы интересно увидеть пример приложения на каком-нибудь Гитхабе.

Реализовал через периодические async/await запросы за данными в таблице через, у которых ИД больше заданного. Количество данных в таблице меряется сотнями, так что не думаю чтоб оно сильно тупило.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39853868
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoРеализовал через периодические async/await запросы за данными в таблице через, у которых ИД больше заданного. Количество данных в таблице меряется сотнями, так что не думаю чтоб оно сильно тупило.Запрос чтения из очереди раз в полминуты от сотни операторов - это не слишком много...
Vadim Romanenkoalexeyvg,

Или не подошло, или этот SqlDependency вообще странно работает. Уже несколько раз перебрал и код, и документацию - единственное к чему можно прикопаться, это вот эти вот права для пользователя на сервере.Так для пользователя, которому явно дали такие права (не через паблик, а ему самому), работает?

Vadim RomanenkoВозможно, кто-то сможет создать работающий прототип - было бы интересно увидеть пример приложения на каком-нибудь Гитхабе.А пример кода от MS не подходит?
https://code.msdn.microsoft.com/How-to-use-SqlDependency-5c0da0b3
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39853878
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenko,

хотите некое альтернативное решение?

я правда не могу сказать как скажется такое решение на производительности сервера, это надо тестировать но руки не доходили.

данный подход основывается на функционале используемом в мониторах трасс и XE, а именно это процедура и функция:
Код: sql
1.
2.
sp_trace_getdata
fn_MSxe_read_event_stream



первая работает с серверными трассами, вторая с расширенными событиями, обе возвращают данные в виде потока.

также у нас есть средство позволяющее вызвать пользовательское событие:
Код: sql
1.
2.
3.
4.
5.
6.
7.
sp_trace_generateevent

[ @eventid=] event_id Is the ID of the event to turn on. event_id is int, with no default. The ID must be one of the event numbers from 82 through 91, which represent user-defined events as set with sp_trace_setevent.

[ @userinfo= ] 'user_info' Is the optional user-defined string identifying the reason for the event. user_info is nvarchar(128), with a default of NULL.

[ @userdata= ] user_data Is the optional user-specified data for the event. user_data is varbinary(8000), with a default of NULL.




итого все что требуется в приложении:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 public static void Main(string[] args) {
    using (var cn = new SqlConnection("some_string")) {
       using (var cmd = new SqlCommand($"select [type], [data] from sys.fn_MSxe_read_event_stream('my_app', null);", cn) {
          try {
              cn.Open();
              var reader = cmd.ExecuteReader();
              while (reader.Read()) {
                  var somepayload = ParseData(reader.GetSqlBytes(1).ToSqlBinary().Value);
                  DoAction(somepayload);
              }
          }
          finnaly {}
       }
    }
 }

//остается только написать метод Parse которые будет парсить поток байт, там вполне все тривиально
//описание выходного потока для данных процедур можно найти в инете



на сервере:
Код: sql
1.
2.
3.
4.
5.
create event session [my_app2] on server
add event user_event (where event_id = 90 or event_id = 91) --соответственно никто не мешает расширить фильтр скажем на user_info
go
alter event session [my_app] on server state = start;
go



в таком случае сможете отсылать уведомления в приложение без особых заморочек с service broker
при этом у вас есть возможность логировать уведомления можно для расширенных событий настроить цель в файл к примеру.
и на декларативном уровне у вас появляется некоторая возможность конфигурирования уведомлений в user_info можно передавать nvarchar(128) а в data varbinary(8000), а то как вы уже будете использовать эту информацию зависит от вас.

Код: sql
1.
2.
  exec [sp_trace_generateevent] 90, N'some event 1', null
  exec [sp_trace_generateevent] 91, N'some event 2', null



при обращении к функции fn_MSxe_read_event_stream запрос подключается к сиквелу в режиме чтения с типом ожидания XE_LIVE_TARGET_TVF, тоже самое делает студия когды вы щелкаете "наблюдать за данными предаваемыми в режиме реального времени"
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39853926
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ffитого все что требуется в приложенииТак этот вариант ТС упоминал: "постоянный опрос сервера с каждого клиента"
А он хочет заменить опросы на вызовы клиента со стороны сервера при наступлении некоего события (что в теории правильно, хотя есть вопрос, стоит ли это такого геморроя).
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39853957
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

Так этот вариант ТС упоминал: "постоянный опрос сервера с каждого клиента"
А он хочет заменить опросы на вызовы клиента со стороны сервера при наступлении некоего события (что в теории правильно, хотя есть вопрос, стоит ли это такого геморроя).


да я в целом согласен.

это просто альтернатива выборке из таблиц что бы не нагружать сервер множествеными запросами типа "а есть чо?"

в таком же исполнении работает waitfor (receive) для брокера.


ну а если мы хотим совсем альтернативу callback-вызова с сервера на клиент, то на ум приходит такое:
внутри клиента создается служба-сервер (можно обычный REST/SOAP сервис)

при подключении к сиквелу клиент регистрирует себя для обратного вызова на сиквеле какой нибудь хранимкой
вызов аля:
Код: sql
1.
exec RegisterCallback @hostName = 'some_client_host', @pid = 13248, @callback = 'http://some_cliet_host/CallBackEvent:2020', @eventType='update_client';



собственно при возникновении события сервер знает какие клиенты на него подписаны и отправляет обычный POST запрос
средств уйма: CLR / sp_OA / ssis / cmdshell


единственная сложность будет отслеживание отвалившихся сессий, поскольку по хорошему при выходе клиент должен будет вызывать Unregister, но есть варианты когда приложение крашится и.т.д
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854007
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenkoalexeyvg,

Или не подошло, или этот SqlDependency вообще странно работает. Уже несколько раз перебрал и код, и документацию - единственное к чему можно прикопаться, это вот эти вот права для пользователя на сервере.
не могу даже представить что может пойти не так :) тестовый пример заводится с пол оборота....
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854088
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenkoalexeyvg,

Или не подошло, или этот SqlDependency вообще странно работает. Уже несколько раз перебрал и код, и документацию - единственное к чему можно прикопаться, это вот эти вот права для пользователя на сервере.

Как сказал классик: не умножайте сущности.
Ваша задача решается при помощи SqlDependency без всяких трехзвенок, MSMQ и т.д.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854118
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoКто в курсе - можно ли как-то выдать гранты одновременно для любого юзера, который подключается через Windows Authentication? Для существующих и будущих юзеров? Возможно, есть какой-то подходящий псевдоним? А то что-то нотификации не приходят. И есть подозрение, что проблема в этом моменте:

Ага. Называется "Ваш домен\All Users", емнип.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854212
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgТак для пользователя, которому явно дали такие права (не через паблик, а ему самому), работает?
Я не пробовал, если честно. В моем случае такое решение в любом случае не катит - потому что юзеры подключаются через эту самую вин. авторизацию, которую я не контролирую никак. Т.е. не контролирую появление новых юзеров, которые могут подключаться к БД. А соответственно нет возможности автоматически выдавать им соответствующие права.

alexeyvgА пример кода от MS не подходит?
https://code.msdn.microsoft.com/How-to-use-SqlDependency-5c0da0b3
Блин, именно этот пример мне не попадался. Спасибо. Может попробую :)
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854219
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MinamotoVadim RomanenkoКто в курсе - можно ли как-то выдать гранты одновременно для любого юзера, который подключается через Windows Authentication? Для существующих и будущих юзеров? Возможно, есть какой-то подходящий псевдоним? А то что-то нотификации не приходят. И есть подозрение, что проблема в этом моменте:

Ага. Называется "Ваш домен\All Users", емнип.
Вот блин. Надо будет попробовать :)
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854221
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKVadim Romanenkoalexeyvg,

Или не подошло, или этот SqlDependency вообще странно работает. Уже несколько раз перебрал и код, и документацию - единственное к чему можно прикопаться, это вот эти вот права для пользователя на сервере.
не могу даже представить что может пойти не так :) тестовый пример заводится с пол оборота....

Вот и я не могу. Но что-то идет не так. Причем какие-то запросы - вижу - уходят на сервер, но там все через некие внутренние сущности. Потому не могу сходу понять что же оно там опрашивает. Но коллбек в любом случае не срабатывает
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854282
Vadim RomanenkoMinamotoпропущено...

Ага. Называется "Ваш домен\All Users", емнип.
Вот блин. Надо будет попробовать :)

I'd say better to use "AUTHORITY\Authenticated Users".
Allows you to add permissions for logged to domain users (guests excluded).
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854314
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoalexeyvgТак для пользователя, которому явно дали такие права (не через паблик, а ему самому), работает?
Я не пробовал, если честно. В моем случае такое решение в любом случае не катит - потому что юзеры подключаются через эту самую вин. авторизацию, которую я не контролирую никак. Т.е. не контролирую появление новых юзеров, которые могут подключаться к БД. А соответственно нет возможности автоматически выдавать им соответствующие права.Это нужно попробовать, что бы понять, что не работает.

Вы ведь пока что "придумали" это препятствие, вы же не знаете, что на самом деле не так.

Т.е. вам сначала нужно сделать работающий тестовый пример, а потом уже разбираться, как обойти ограничение "права для вин-пользователей". А вы делаете наоборот - у вас не работает, и вы придумали, что не работает из за прав.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854348
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgVadim Romanenkoпропущено...

Я не пробовал, если честно. В моем случае такое решение в любом случае не катит - потому что юзеры подключаются через эту самую вин. авторизацию, которую я не контролирую никак. Т.е. не контролирую появление новых юзеров, которые могут подключаться к БД. А соответственно нет возможности автоматически выдавать им соответствующие права.Это нужно попробовать, что бы понять, что не работает.

Вы ведь пока что "придумали" это препятствие, вы же не знаете, что на самом деле не так.

Т.е. вам сначала нужно сделать работающий тестовый пример, а потом уже разбираться, как обойти ограничение "права для вин-пользователей". А вы делаете наоборот - у вас не работает, и вы придумали, что не работает из за прав.

Да, Вы абсолютно правы. Но на данный момент у меня закончилось время на изыскания и я сдался. Запилил банальный таймер, который раз в 30 секунд дергает сервер с вопросом "а есть ли чего нового на сегодня с ИД > предыдущего максимального".
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854349
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenko,

для начала выполнить раздел "Включение уведомлений запросов" по указанной ссылке.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854402
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoalexeyvgЭто нужно попробовать, что бы понять, что не работает.Да, Вы абсолютно правы. Но на данный момент у меня закончилось время на изыскания и я сдался.Это как раз потому, что вы не попробовали на обычном пользователе.

Это же классика отладки - не делать много действий сразу, не пытаться запустить сразу что то большое и сложное.

Но если вас устраивает периодический опрос, то можно и так, если операторов немного, а время реакции допустимо большое.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854533
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опрашивать лучше не базовые таблицы, а создать вспомогательную, в которой обновлять через триггер базовой метку времени последних изменений.
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Уведомление клиентов об изменениях на сервере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]