как передавать данные или сообщение с сервера sql на веб-приложение

90
9

Я разрабатываю проект веб-приложения asp.net MVC 3. Проект прост, он предоставляет веб-страницу с перечислением хранимых процедур в SQL Server. когда пользователь выбирает хранимую процедуру и нажимает кнопку "запустить", она вызывается для выполнения в SQL Server и возвращает некоторый результат выполнения.

Моя хранимая процедура логически разделена на несколько этапов, например, 10 шагов, каждый шаг печатает сообщение, такое как step 1: doing A..., step2: dong B..., до step 10: done или step 10: fail. (with error message) step 10: fail. (with error message).

Я не хочу, чтобы пользователь просто зависал, чтобы дождаться завершения хранимой процедуры и просто увидеть окончательное сообщение. Я хочу, чтобы они увидели какое-то живое исполнение хранимой процедуры, так что пользователь хорошо обновил, где хранится процедура. Некоторые хранимые процедуры выполняются быстро и занимают несколько секунд, некоторые из них очень медленные и требуют даже 1 часа, чтобы закончить,

Теперь возникает вопрос: как я могу направить тезисные сообщения с SQL Server на веб-приложение, чтобы в веб-браузере пользователь мог видеть, как каждое сообщение шага печатается в режиме реального времени?

Я ищу много информации, лучшее, что я могу видеть, - это контроллер модели, который уведомляет о просмотре после изменения в модели, но все равно нужен контроллер модели, чтобы вытащить из SQL Server, я не вижу никакого реального нажатия от SQL Server до веб-приложения. Ваш совет высоко ценится.

спросил(а) 2021-01-19T19:50:55+03:00 6 месяцев, 2 недели назад
1
Решение
118

Один из подходов заключался бы в создании таблицы журналов в начале процедуры с уникальным именем. Код MVC отображает сетку или другой элемент, отображающий эту таблицу журналов, хранимая процедура просто добавляет строки в таблицу после завершения каждого шага...

Захватите идентификатор сеанса соединения Процедура создает файл LOG_SessID MVC открывает таблицу и использует Meta Refresh или Timer для повторного отображения страницы Каждый повторный просмотр проверяет, существует ли таблица, если нет, предполагается, что процедура завершена и печатает соответствующее сообщение

ответил(а) 2021-01-19T19:50:55+03:00 6 месяцев, 2 недели назад
46

Одно из возможных решений может заключаться в том, что вы разбиваете свой SP на шаги и вызываете каждый шаг SP и обновляете экран пользователя (даже для отдельных шагов MVC VIEWS/PARTIAL VIEWS для каждого шага успеха и неудачи) на основе результата!

ответил(а) 2021-01-19T19:50:55+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема