我需要拦截在 ADO 连接组件和数据库服务器之间传递的所有 SQL 命令。类似于 dbExpress 的 TSQLmonitor ,但用于 ADO 。

有人知道实现此功能的任何第三方组件吗?

更新

我想要做的是在不使用外部工具的情况下以编程方式(通过代码)从我的应用程序监视 SQL 语句。适用于任何数据库引擎。

最佳答案

我找到了一个解决方案,使用事件 TAdoConnection.OnWillExecute (发生在数据库服务器表示接受命令执行之后。)

更多信息 here

procedure TDataModuleProd.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
   AddLog(CommandText);
end;

我在我的博客上写了一篇小文章,供那些想要更多信息的人使用。

http://theroadtodelphi.wordpress.com/2010/02/21/build-your-own-profiler-using-ado/

关于delphi - 如何监视通过 ADO 连接发送的 SQL 命令?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2067390/

10-12 03:48