No lo he probado, pero parece que la solución desde Delphi sería utilizar el evento
OnWillExecute del componente conexión (TADOConnection):
Código Delphi
[-]
procedure TForm1.ADOConnection1WillExecute(Connection: TADOConnection;
var CommandText: WideString; var CursorType: TCursorType;
var LockType: TADOLockType; var CommandType: TCommandType;
var ExecuteOptions: TExecuteOptions; var EventStatus: TEventStatus;
const Command: _Command; const Recordset: _Recordset);
begin
ShowMessage ('La sentencia es:'#13#10 + CommandText);
end;
Claro, seguramente sólo te funcionará con las consultas que hagas (directa o indirectamente) a través de ese objeto conexión.
¿Necesitas monitorear incluso lo que se haga desde otras aplicaciones?