![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
не вызывается событие 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]А где назначен обработчик?