type
  TADOQueryHook = class(TADOQuery);
function GetSetActiveAddr : Pointer;
begin
  Result := @TADOQueryHook.SetActive;
end;
//用GetSetActiveAddr得到SetActive过程的地址,然后用InLine_HOOK,新入口格式如下:procedure NewSetAvtiveProc(Self : TDataSet; Value : Boolean);
begin
  if Value and (PPointer(Self)^ = TADOQuery) then begin
    ShowMessage(TADOQuery(Self).SQL.Text);
  end;
end;