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

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

не вызывается событие OnBeforePost


12345 ©   (2013-09-30 12:12:00) 


Q := TQuery.Create(nil);
 try
   Q.SessionName :=  Session.SessionName;
   Q.DatabaseName := Database.DatabaseName;
   Q.SQL := 'SELECT * FROM item WHERE flag = 1';
   Q.RequestLive := True;
   Q.Open;
   if Q.RecordCount > 0 then
   begin
     Q.First;
     while not Q.Eof do
     begin
       Q.Edit;
       Q.Post;
       Q.Next;
     end;
   end;
 except
   Q.Free;
 end;


Необычный порошок   (2013-09-30 14:01:00) [1]

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


[ВладОшин]   (2013-09-30 13:55:00) [2]


> Q := TQuery.Create(nil);

Q.OnBeforePost :=


Плохиш   (2013-09-30 13:52:00) [3]


> 12345   (30.09.13 13:12) [2]

Причём здесь событие OnBeforePost?

> Вся обработка выполняется в триггере.

Делфи здесь каким боком?


Необычный порошок   (2013-09-30 13:28:00) [4]

Вранье.

procedure TDataSet.Post;
begin
 UpdateRecord;
 case State of
    dsEdit, dsInsert:
     begin
       DataEvent(deCheckBrowseMode, 0);
      DoBeforePost;
       CheckOperation(InternalPost, FOnPostError);
       FreeFieldBuffers;
       SetState(dsBrowse);
       Resync([]);
       DoAfterPost;
     end;
 end;
end;

procedure TDataSet.DoBeforePost;
begin
 if Assigned(FBeforePost) then FBeforePost(Self);
end;


12345   (2013-09-30 13:12:00) [5]

А где назначен обработчик?

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

Q.Edit;
Q.FieldByName('url').AsString := ' ';
Q.Post;


MBo   (2013-09-30 12:34:00) [6]

А где назначен обработчик?


Наверх

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