Страница 1 из 1

Event - Delphi 2005

Добавлено: 16 дек 2010, 12:43
bratslav
Привет всем!

Использую FB2.1
На тригерах вешаю post_event 'RefreshDB';

На клиенте

Код: Выделить всё

procedure TfZakaz.IBEvents1EventAlert(Sender: TObject; EventName: string;
  EventCount: Integer; var CancelAlerts: Boolean);
begin
  try
//     ShowMessage('Поймал');

    BuildSQL(False); // Переоткрыть запрос
    if not IBEvents1.Registered then IBEvents1.RegisterEvents;
  except
  end;
end;

По умолчанию IBEvents1.Registered == False
При активации формы IBEvents1.RegisterEvents;


На клиенте Event ловится, но вешает программу везде кроме того клиента откуда событие генерируется (я знаю, что генерирует сервер:-))

Re: Event - Delphi 2005

Добавлено: 16 дек 2010, 14:04
hvlad
В обработчике событий нельзя выполнять запросы к БД

Re: Event - Delphi 2005

Добавлено: 16 дек 2010, 14:42
Dimitry Sibiryakov
В общем случае это зависит от того как написан компонент. Но в данном конкретном случае - руки всё равно надо отрывать.

Re: Event - Delphi 2005

Добавлено: 17 дек 2010, 15:53
bratslav
Не понял.
Мне руки отрывать? А в каком месте?

Или разработчику?
Тогда где взять нормальный компанент?

С уважением, Брацлавский Вячеслав.

Re: Event - Delphi 2005

Добавлено: 18 дек 2010, 14:54
Dimitry Sibiryakov
Тебе, тебе. И отрывать в месте их роста - у самой ж. Влад же чёрным по-русски сказал - не надо рефрешить датасеты по эвенту.

А нормальных алертеров в природе не существует. Для правильной работы с событиями надо код, использующий непосредственно API адаптировать к каждому конкретному приложению.