Триггер должен спрашивать совета у юзера - КАК СДЕЛАТЬ?
Max_Try
Дата: 10.10.2003 13:49:56
Задача такая:
Результат трехэтажных джойнов с кучей вложенных запросов должен вставляться в к-нибудь таблицу. Триггер должен проверять вставляемую запись на к-нибудь условия, и если условия не совпадают, то ОСТАНАВЛИВАТЬ ВСТАВКУ и ждать, пока юзер не ткнет ему пальцем, че конкретно делать - пропустить запись, вставить ее, или вставить в другую таблицу, например.
(я так полагаю, интерактивные процедуры средствами самого MS SQL невозможны, т.е. EM+QA+ХП не катит. Осознаю, что клиента придется писать).
Подскажите, люди добрые, с чего начать хотя бы?
(В идеале хотелось бы, чтобы юзер запускал ХП из QA - такие вот продвинутые юзеры...)
iSestrin
Дата: 10.10.2003 13:54:12
добавляй во временную таблицу, проверяй бизнес-логику, спрашивай юзера, а потом уже из временной в основную можно перелить
pkarklin
Дата: 10.10.2003 13:57:17
Ну с триггером то точно не получится. А если попробовать сливать результаты во временную таблицу, а потом запускать хп (несколько хп), которые бы все это обрабатывали.
Max_Try
Дата: 10.10.2003 14:02:17
Да у меня в этом как раз и проблема - как спросить юзера?
Т.е. к-нибудь хранимая процедура на сервере должна сама инициировать обращение к пользователю.
Можно, конечно, сливать все проблемные комбинации в другую таблицу, потом из клиентской софтины эту таблицу проверять, и генерировать новые SQL запросы уже из клиентской софтины. А если все мозги приложения лежат на сервере в ХП, и клиентская часть должна только спрашивать и возвращать ответ в ХП?
Александр Спелицин
Дата: 10.10.2003 14:12:30
Вам придется переходить на трехзвенку.
И там уже среднее звено будет говорить клиентской части, чтобы та спросила у юзера чего-либо. И только после получения ответа продолжится выполнения правил на среднем слое.
pkarklin
Дата: 10.10.2003 14:13:11
Да у меня в этом как раз и проблема - как спросить юзера?
Т.е. к-нибудь хранимая процедура на сервере должна сама инициировать обращение к пользователю.
Не может хп ничего у юзера спросить. Записал ты данные во временную таблицу, запускаешь хп, которая проверяет условие и в резалте возвращает юзеру, например идентификатор записи и ее состояние, клиент выдав пользователю соответсвующий запрос при ответе пользователя вызывает другую хп, которая делает чего-то с конкретной записью и проставляет признак обработки. И так, пока все записи не будут обработаны. Это если на сервере делать. Или все то же, тока на клиенте разводить.
1234567
Дата: 10.10.2003 14:16:09
А как быть с Microsoft, которая категорически не советует вешать блокировку и ждать, пока юзер ткнет куда-нить пальцем?