День добрый.
Использую для работы с базой данных компоненты MyDac 8.7.23.
Возник такой вопрос. В программе ведется лог работы пользователя с базой. Хотелось бы отлавливать какие именно поля он менял. При просмотре лога работы TmyQuery через dbmonitor видно что компонент при изменение полей не пихает все поля в запрос, а изменяет только нужные, хотелось бы отлавливать данные изменения из кода. Подскажите имеется ли такая возможность?
Отловить измененные поля
Re: Отловить измененные поля
Если свойство SQLUpdate установлено в пустую строку, MyDAC будет автоматически формировать необходимые SQL запросы при выполнении соответствующих операций. В таком случае, для решения вашей задачи, вы можете использовать обработчик события AfterUpdateExecute. Например:
Код: Выделить всё
procedure TForm1.MyQuery1AfterUpdateExecute(Sender: TCustomMyDataSet;
StatementTypes: TStatementTypes; Params: TDAParams);
var
i, j: integer;
begin
if stUpdate in StatementTypes then
for i := 0 to Params.Count - 1 do
for j := 0 to Sender.FieldCount - 1 do
if Params[i].Name = Sender.Fields[j].FieldName then
...
end;