Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.01 c
14-1133873705
Бамбук
2005-12-06 15:55
2006.01.01
VC++: рантайм библиотеки


2-1134559351
_Lucifer_
2005-12-14 14:22
2006.01.01
Как вызвать форму из dll?


5-1119712589
NewMaxNeo
2005-06-25 19:16
2006.01.01
НЕ могу найти модуль


8-1122406227
Gamer
2005-07-26 23:30
2006.01.01
Работа со цветами


14-1133800393
psa247
2005-12-05 19:33
2006.01.01
Несворачиваемое окно !





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский