Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
Sugrob57
Member

Откуда: Омск
Сообщений: 12
Добрый день. При создании приложения на Delphi c помощью ADO компонентов столкнулся со следующей задачей:
Необходимо запускать нужную процедуру при добавлении записи в таблицу на сервере.

Поиск по просторам интернета сказал, что нужно использовать триггер AFTER INSERT для нужной таблицы , и команду POST_EVENT '<event_name>'

Но проблема в том, что в Microsoft SQL Server 2005 нет такой команды,а есть она только в InterBase Server

Вариант поменять сервер как-то не очень радует, не уж то нет никаких аналогов данной команды для MS?
Ну или другие способы решения?
18 июл 13, 15:59    [14584736]     Ответить | Цитировать Сообщить модератору
 Re: аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
автор
Необходимо запускать нужную процедуру при добавлении записи в таблицу на сервере.


Процедура - это хранимая процедура на сервере? Если да, то вызовите ее в триггере.
18 июл 13, 16:05    [14584792]     Ответить | Цитировать Сообщить модератору
 Re: аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
Не знаю, что за Post_event....
CREATE TRIGGER trg 
AFTER INSERT AS
BEGIN
exec proc_name
END
18 июл 13, 16:08    [14584826]     Ответить | Цитировать Сообщить модератору
 Re: аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
POST_EVENT
Если вы натолкнулись на сие - то етим вы процедуру не запустите даже в Интербейс
исходя из вашей постановки задачи вам уже ответили как запустить процедуру из тригера
18 июл 13, 16:22    [14584983]     Ответить | Цитировать Сообщить модератору
 Re: аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
Sugrob57
Member

Откуда: Омск
Сообщений: 12
Нет нет нет.. зачем хранимая процедура , ТРИГГЕР!

По сути ведь (как я понял) и триггер, и хранимая процедура имеют похожий синтаксис и могут выполнять одни и те же функции. Только хранимую процедуру надо вызывать (например компонентом Delphi "ADOProcedureEXec") а триггер запускается сам, по указанному событию (в моем случае при добавлении записи в таблице).

Вся проблема в том что дейсвтвия необходимо выполнять не на сервер, а на клиентской машине.

Клиентов много, они делятся на "специалистов" и "администраторов". Когда специалист один добавляет запись в таблицу "Очередь", программа администратора должна как-то об этом узнать (ей должен об этом сказать сервер) ну и, соответственно, запустить свою процедуру реагирования.

Наиболее подходящим вариантом вижу выполнить команду на сервере "POST EVENT 'Новая запись' " , то есть известить всех, что запись добавлена. Но как уже говорил такой команды в MS SQL 2005 нет(((
19 июл 13, 05:53    [14587185]     Ответить | Цитировать Сообщить модератору
 Re: аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
Sugrob57
Member

Откуда: Омск
Сообщений: 12
Вообще про данную функцию узнал отсюда: http://www.delphiplus.org/programirovanie-baz-dannih-v-delphi/sobitiya-i-operator-post_event.html

Но собственно, и ваша ссылка, Maxx. о том же)
19 июл 13, 05:57    [14587186]     Ответить | Цитировать Сообщить модератору
 Re: аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2407
Sugrob57
Нет нет нет.. зачем хранимая процедура , ТРИГГЕР!
(


вам же - написали: ТРИГГЕР, который, при добавлении записи, запускает процедуру, которая делает вам необходимое
19 июл 13, 09:51    [14587693]     Ответить | Цитировать Сообщить модератору
 Re: аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
Гость333
Member

Откуда:
Сообщений: 3683
StarikNavy
Sugrob57
Нет нет нет.. зачем хранимая процедура , ТРИГГЕР!
(


вам же - написали: ТРИГГЕР, который, при добавлении записи, запускает процедуру, которая делает вам необходимое

Имхо, имелась в виду процедура на Delphi.
19 июл 13, 09:52    [14587700]     Ответить | Цитировать Сообщить модератору
 Re: аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Sugrob57
Microsoft SQL Server 2005
Ну или другие способы решения?

Например, вот: Работа с уведомлениями запросов. Дал ссылку на доку по MSSQL 2008, т.к. для 2005 эта статья не переведена на русский.
19 июл 13, 09:56    [14587729]     Ответить | Цитировать Сообщить модератору
 Re: аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
Sugrob57
Member

Откуда: Омск
Сообщений: 12
Да е-мое.. Я может выразился неправильно.. Под процедурой имелась ввиду процедура в клиентском приложении DElphi, а не на сервере..

На сервере на данный момент нет никаких процедур
19 июл 13, 09:58    [14587737]     Ответить | Цитировать Сообщить модератору
 Re: аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
iap
Member

Откуда: Москва
Сообщений: 47083
https://www.sql.ru/forum/715346/uvedomlenie-klienta?mid=7984911
https://www.sql.ru/forum/753671/poslat-sobytie-prilozheniu-ob-izmenenii-tablicy?mid=8680293

и т.д. - в поиск
19 июл 13, 10:04    [14587782]     Ответить | Цитировать Сообщить модератору
 Re: аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
iap
Member

Откуда: Москва
Сообщений: 47083
Sugrob57
Да е-мое.. Я может выразился неправильно.. Под процедурой имелась ввиду процедура в клиентском приложении DElphi, а не на сервере..

На сервере на данный момент нет никаких процедур
По Delphi - отдельный форум
19 июл 13, 10:06    [14587793]     Ответить | Цитировать Сообщить модератору
 Re: аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
Sugrob57
Member

Откуда: Омск
Сообщений: 12
Эврика!!!!!!!!!!!!!!

Таки есть выход, хоть и боле извращенный чем в InterBase c его POST_EVENT

Спасибо за ссылки, сижу разбираюсь. По результатам - позже..


З.Ы.: Да причем тут форум по Delphi? Я с таким же успехом мог ту же самую прогу на ПХП писать :-)
19 июл 13, 10:18    [14587860]     Ответить | Цитировать Сообщить модератору
 Re: аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Только 1 вопрос - нафига ето надо то ?
19 июл 13, 10:21    [14587871]     Ответить | Цитировать Сообщить модератору
 Re: аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
Sugrob57
Member

Откуда: Омск
Сообщений: 12
Ну как это нафига... У меня клиент-серверное приложение (по сути очень очень специфичная электронная очередь). Когда специалисты жмут на кнопочку "записать посетителя" в таблицу на сервере добавляется запись (обычным INSERT'ом)

Сервер реагирует что в него что-то добавили и сообщает об этом администратору (на еще одно клиентское приложение)

Ну а администратор реагируя на сообщение сервера запрашивает новые данные (или получает их от сервера сразу) и выводит на экран новую запись типа "Клиент №5 пройдите в кабинку №4" ну и то же самое воспроизводит звуком.


З,Ы,: вся проблема стала в том что нормальные люди для таких случаев реализуют еще и серверное приложение, и соединяют клиентов и сервер через TCP\IP, к примеру, а уже серверное приложение хранит у себя нужные базы и оповещает всех когда надо..

Но в моем случае клиентское приложение уже написано, прекрасно работает, и пишет именно на SQL-сервер никого об этом не предупреждая. Моя же задача создать ПО для администратора, который будет делать свои действия по факту добавления записей.
19 июл 13, 11:08    [14588235]     Ответить | Цитировать Сообщить модератору
 Re: аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
используйте сервис брокер с очередями и ендпоиты
19 июл 13, 12:40    [14589105]     Ответить | Цитировать Сообщить модератору
 Re: аналог команды POST_EVENT(из InterBase) в триггере на MS SQL Server  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Maxx
используйте сервис брокер с очередями и ендпоиты


100%
20 июл 13, 14:03    [14593137]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить