SqlDependency уведомление SQL Server 2005 не стреляет на несколько вставок - PullRequest
0 голосов
/ 05 сентября 2018

Мне трудно работать с sqlDependency на sqlServer 2005. Вопрос:

  1. Как эффективно переинициализировать sqlDependency, чтобы он мог срабатывать несколько раз?

вот моя реализация перерегистрации уведомления sqlDependency:

SqlCommand command = new SqlCommand(sqlCommandString, openedConnection);
SqlDependency sqlDependency = new SqlDependency(Command);
sqlDependency.OnChange += this.OnChangeHandler;
command.ExecuteNonQueryAsync();
  1. Но проблема с этим подходом состоит в том, что если я запускаю множественные операции вставки в базу данных одновременно, onChangeHandler запускается только один раз. Почему это случилось?

Edit1: Под одновременным словом я подразумеваю запуск команд sql один за другим, так что задержка между ними очень мала.

Например:

INSERT...;
INSERT...;
INSERT...;

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

Вот функция, которую я вызываю incide OnChangeHndler:

public void RegisterSqlDependency(string sqlCommandString, EventHandler eventHandler)
    {
        SqlCommand command = new SqlCommand(sqlCommandString, this.connection);
        SqlDependency sqlDependency = new SqlDependency(command);
        sqlDependency.OnChange += this.OnChangeHandler;
        command.ExecuteNonQueryAsync();
    }

1 Ответ

0 голосов
/ 05 сентября 2018

Эффективный способ реализации SQL-зависимости описан здесь, пожалуйста, посмотрите -

http://www.codeproject.com/Articles/12335/Using-SqlDependency-for-data-change-events

Также см. Ниже обсуждение -

SQLDependency_OnChange-Event запускает только один раз

...