Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

StoreProcedure+InterBase [D7, IB7.x]


mpokemonov ©   (2005-11-09 11:05:00) 

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


-SeM-   (2005-11-10 10:31:00) [1]

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

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

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


mpokemonov   (2005-11-10 10:22:00) [2]

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


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


> Вот только не стыкуется. 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:12:00) [4]

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


-SeM-   (2005-11-10 10:08:00) [5]

Mikolla   (10.11.05 10:05) [8]

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


> AFTER UPDATE

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


Mikolla   (2005-11-10 10:05:00) [6]

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;


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

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


mpokemonov   (2005-11-10 09:48:00) [8]

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


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


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

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

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

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


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

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


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

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


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

вот процедура:
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));

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


Zacho   (2005-11-09 11:37:00) [13]

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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо