Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.01;
Скачать: CL | DM;

Вниз

StoreProcedure+InterBase   Найти похожие ветки 

 
mpokemonov ©   (2005-11-09 11:05) [0]

День добрый! Есть вопрос -база,2 терминала(склад+снабж). IBEvents должен оповестить когда в процедуре изменится состояние идентификатора. В рамках одного приложения работает, в рамках 2-х нет :-(....оба подключениы к одной базе, права есть. Доп. инфо по необходимости. Заранее благодарен :-)


 
Zacho ©   (2005-11-09 11:37) [1]

Не совсем понятно, в чём именно проблема. Опиши, как именно "не работает". Ошибка какая-то (приведи сообщение об ошибке) или что другое ?

А вообще, забей на эти ивенты. Серьёзно. Во-первых, реально они не нужны (и даже вредны), во-вторых, насколько знаю, ивенты нормально работают начиная с FB 1.5 Впрочем, может Борланд спёр код из FB, но сомневаюсь.


 
mpokemonov ©   (2005-11-09 12:32) [2]

вот процедура:
create procedure Show_event (event_id integer)
as
begin
if (:event_id=1) then post_event "event1";
exit;
end
регистрация ивентов в IBEvents:
procedure TMainForm.Database1BeforeConnect(Sender: TObject);
begin
if not events1.Registered then
events1.RegisterEvents;
end;
Ивенты:
event1
Передача состояния в процедуру:
store1.Params[0].AsInteger:=Bitbtn1.Tag;
store1.ExecProc;
Transaction1.Commit;
Таг установлен ручками = "1"
Чего должно быть: memo1.lines.add("новая запись"+"            "+ inttostr(eventcount));

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


 
Mikolla   (2005-11-10 08:39) [3]

а где код обработки ивента ?


 
mpokemonov ©   (2005-11-10 09:30) [4]

исходя из того мануала, которым располагаю, обработка ивента начинается автоматически при отработке StoreProc.execProc+Transaction.commite, в случаях прямого указания связи ивента и процедуры.
Изменение значения параметра процедуры - начало отработки OnEventAlart...
типа того....кстати, в рамках одного приложения все работет "аж бЫгом" :-)


 
Mikolla   (2005-11-10 09:43) [5]


>... обработка ивента начинается автоматически при отработке
> StoreProc.execProc+Transaction.commite...

Ничо не понимаю...

1. Вы передаете в ХП event_id
2. Если event_id=1, IB генерит ивент
3. В D7 поднимается OnEventAlart.

Какие действия делаются по OnEventAlart ?


 
mpokemonov ©   (2005-11-10 09:48) [6]

memo1.lines.add("новая запись"+"            "+ inttostr(eventcount));


 
Mikolla   (2005-11-10 09:53) [7]

если нужно оповестить при добавлении новой записи, то почему бы не использовать trigger типа after/before insert ?


 
Mikolla   (2005-11-10 10:05) [8]

CREATE TRIGGER RECINSERT FOR NAME_BASE
ACTIVE AFTER UPDATE POSITION 0
AS
begin
 post_event "EV_EI_UPD";
end

procedure TMain.IBEvents1EventAlert(Sender: TObject; EventName: String;
 EventCount: Integer; var CancelAlerts: Boolean);
begin

> memo1.lines.add("новая запись"+"            "+ inttostr(eventcount));

end;


 
-SeM-   (2005-11-10 10:08) [9]

Mikolla   (10.11.05 10:05) [8]

> при добавлении новой записи


> AFTER UPDATE

Вот только не стыкуется. AFTER INSERT.


 
mpokemonov ©   (2005-11-10 10:12) [10]

тогда необходимо навешивать еще и InterBase API для регистрации приложений.
Есть мысли почему через процедуру родную не работает?


 
Mikolla   (2005-11-10 10:19) [11]


> Вот только не стыкуется. AFTER INSERT.


ну блин....

CREATE TRIGGER RECINSERT FOR NAME_BASE
ACTIVE AFTER INSERT POSITION 0
AS
begin
 post_event "EV_EI_UPD";
end

так устроит ? ;)


> навешивать еще и InterBase API для регистрации приложений.

поясни..


 
mpokemonov ©   (2005-11-10 10:22) [12]

это я до обновления написал :-)
триггер можно, вопрос о процедуре :-)


 
-SeM-   (2005-11-10 10:31) [13]

Mikolla   (10.11.05 10:19) [11]
Да мне как-то все равно :)

mpokemonov ©   (10.11.05 10:12) [10]
Что это?

Что будет если в [2] Commit по каким-то причинам не пройдет?



Страницы: 1 вся ветка

Текущий архив: 2006.01.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
2-1134730011
Oleg777
2005-12-16 13:46
2006.01.01
Как определить IP-адрес пользователя


14-1133859033
Unknowing
2005-12-06 11:50
2006.01.01
Сектор Delphi


11-1113677326
thaddy
2005-04-16 22:48
2006.01.01
D2005


14-1133975988
Хинт
2005-12-07 20:19
2006.01.01
Сотовая связь. Приятный глюк.


2-1134465019
Daria
2005-12-13 12:10
2006.01.01
Окрасить строки в таблице